学习spring cloud记录4-Eureka
2022/4/14 23:15:24
本文主要是介绍学习spring cloud记录4-Eureka,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
Eureka是一个注册中心,在以前的记录中,两个服务之间的调用需要使用硬编码的方式,即把ip和端口号等地址写死在程序中,使用Eureka可解决此问题,但不知能解决这个问题,还有其他的作用。
Eureka的作用
1.消费者该如何获取服务提供者的信息?
服务提供者启动时,向Eureka注册自己的信息
eureka保存这些信息
消费者根据服务名称向eureka拉取提供者信息
2.如果有多个服务提供者,消费者该如何选择?
服务消费者利用负载均衡算法,从服务列表中选择一个
3.消费者如何感知服务器供着健康状态?
服务提供者会每隔30s向Eureka注册中心发送心跳请求,报告健康状态
eureka会更新记录服务器列表信息,心跳不正常的进行剔除
消费者就可以拉取到最新的信息
搭建Eureka服务
创建项目
引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> <version>3.1.1</version> </dependency>
编写main函数
package ptiv.sinoam.eureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @EnableEurekaServer @SpringBootApplication public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class,args); } }
编写配置文件(application.yml)
server: port: 9003 spring: application: name: eureka-server eureka: client: service-url: # eureka徐娅注册自己的信息 defaultZone: http://127.0.0.1:9003/eureka
启动eureka
发现报错Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.
这是因为该项目在父级pom中引入了jdbc,springboot启动时会自动装配,这个时候发现没有配置数据库所以会报错,在main方法中添加以下代码即可:
@EnableEurekaServer @SpringBootApplication(exclude = DataSourceAutoConfiguration.class) public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class,args); } }
即可启动成功,打开页面可以看到
服务注册
将demo-user注册到eureka
引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>3.1.1</version> </dependency>
编写配置文件
添加以下代码即可
eureka: client: service-url: # eureka徐娅注册自己的信息 defaultZone: http://127.0.0.1:9003/eureka
使用同样方式将demo-order注册到eureka中,启动后会看到注册的服务列表
如果同一个服务启动多个会怎样
复制一个user服务,然后通过-Dserver.port=9004修改端口
启动后发现user多了服务
Eureka服务发现
在消费者中修改写死的url,用服务名代替ip和port
//调用demo-user里面的请求 // String url = "http://localhost:9001/demouser/user/test"; //用服务名进行替换 String url = "http://demo-user/demouser/user/test";
然后添加负载均衡
找到restTemplate添加注解
/** * 创建RestTemplate并注入Spring容器 * @return */ @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); }
重启order项目,调用接口后
不断刷新后,可以在两个user项目的日志中发现都有走,说明实现了负载均衡
结束
1.搭建Eureka
引入server依赖
添加@EnableEurekaServer注解
在配置文件中配置eureka地址
2.服务注册
引入client注解
在配置文件中配置eureka地址
3.服务发现
引入client注解
在配置文件中配置eureka地址
在restTemplate添加@LoadBalanced实现负载均衡
这篇关于学习spring cloud记录4-Eureka的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了