Eureka 由两个组件组成:
- Eureka Server 注册中心
- Eureka Client 服务注册
心跳检测,健康检查,负载均衡
server项目生成
使用 Spring Initializr 生成项目,选择 Cloud Discovery 中的 Eureka Server 依赖。
在主类上需要添加 @EnableEurekaServer 注解,表示自己是注册server。
启动后可以访问localhost:8080 看到注册中心的界面,后台一直报错,因为它既是server也是client,他也需要注册到server上,可以在application.yml中进行以下配置:
1 | # application.yml |
注意:启动后仍然会报错,因为既是server也是client,所以一开始client找不到server,但是一会儿会进行心跳检测,重新连接,就能连接上。
client项目生成
使用 Spring Initializr 生成项目,选择 Cloud Discovery 中的 Eureka Discovery 依赖。在主类上需要添加 @EnableEurekaClient 注解,表示自己是注册 client。然后引入 spring-boot-starter-web 依赖,不然注册完后就会直接退出,最后进行以下配置:
1 | # application.yml |
高可用Eureka
启动两个 eureka(8761和8762),让它们互相注册,此时如果有一个client注册到8761上,8762的eureka也能发现这个client,如果8761掉线,8762还是能发现这个client。
但是如果8761掉线,client重启,那么8762就不能发现这个client。
正确的做法是client向所有的eureka都发起注册,eureka之间也都互相注册,如下配置:
1 | # application.yml |
问题
- 服务拆分后冗余其他服务的数据怎么更新