eureka 包含两个组件:Eureka Server 和Eureka Client
eureka server 提供服务注册服务,各个节点启动后,会在Eureka server中进行注册,eureka server 中的服务注册表中将会存储所有可用的服务节点
eureka client 是一个java客户端,用于简化与eureka server的交互,使用轮询实现负载均衡
在应用启动后,向eureka server发送心跳(默认周期是30秒),如果eureka server 在多次心跳周期内没有接收到某个节点的心跳,eureka server将会从服务注册表中把这个服务节点移除(默认是90秒)
eureka server 之间将会通过复制的方式完成数据同步
eureka 还提供了客户端缓存的机制,即使所有eureka server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的api
如何使用eureka
1. 导入eurekajar包
2. eureka server在application.yml的配置
server:
port: 8761
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:8761/eureka
3. 在启动类或配置类中开启eureka server
@EnableEurekaServer
启动项目后,在浏览器中访问http://localhost:8761/ 就可以看到eureka界面了
如何把服务注册到eureka服务中?
1. 在生产者服务中加入eureka包, 在启动类或配置类中开启@EnableEurekaClient
2. 在生产者服务application.yml文件配置eureka
eureka:
client:
serviceUrl:
defaultZone:http://localhost:8761/eureka
instance:
prefer-ip-address:true
instance-id: ${spring.application.name}:${server.port}