Eureka作为服务注册中心分为
eureka-server
和 eureka-client
服务与eureka间通过心跳机制进行监控,服务出现问题eureka会将服务从服务列表剔除。实现服务注册、发现、状态监控
eureka:application.properties配置: 发现
#服务名称
spring.application.name=eureka
server.port=9002 #端口
#注册中心发现---把自己当作一个服务,注册到集群中的其他注册中心
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
eureka.client.register-with-eureka=false #是否需要本服务注册到eureka
eureka.client.fetch-registry=false #是否需要从eureka获取注册信息
#=======高可用作为客户端的配置
#心跳机制
eureka.instance.lease-renewal-interval-in-seconds=5
#扫描失效文件
eureka.instance.lease-expiration-duration-in-seconds=10
eureka:application.properties配置: 注册
pom.xml导入eureka客户端依赖
eureka.client.register-with-eureka=true #是否需要本服务注册到eureka
eureka.client.fetch-registry=true #是否需要从eureka获取注册信息
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:(eureka的端口)/eureka/
eureka.instance.perfer-ip-address:true #倾向于用IP注册到eureka,建议生产环境用true
启动类添加:@EnableEurekaClient
eureka:application.properties配置: 失效剔除
默认情况下每隔60s对失效服务,90s对超时未续约的服务剔除
eureka.server.eviction-interval-timer-in-ms
自我保护
eureka会统计最近15分钟心跳失败的服务比例是否超过15%,会保留实例注册信息不予剔除,因为可能是网络延迟原因,保证了大多服务依然可用
#关闭自我保护,防止因保护模式而不将挂掉的服务踢出掉 自我保护
eureka.server.enable-self-preservation=false #默认true
#eureka server清理无效节点的时间间隔,默认60000毫秒,即60秒 失效剔除
eureka.server.eviction-interval-timer-in-ms=60000