SpringCloud:Eureka 配置心跳机制
Server服务端
server: port: 8761 eureka: client: #实例是否在eureka服务器上注册自己的信息以提供其他服务发现,默认为true register-with-eureka: false #此客户端是否获取eureka服务器注册表上的注册信息,默认为true fetch-registry: false server: #开启自我保护模式(开启状态下服务停掉eureka不会立即清除掉宕掉的服务,所以false) enable-self-preservation: false #清理无效节点,默认60*1000毫秒,即60秒 eviction-interval-timer-in-ms: 5000
自我保护讲解:
首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行。
默认情况下,如果Eureka Server在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运行的,此时不应该移除这个微服务,所以引入了自我保护机制。
由于Eureka拥有自我保护机制,当其注册表里服务因为网络或其他原因出现故障而关停时,Eureka不会剔除服务注册,而是等待其修复。这是AP的一种实现。
为了让其有精准的 CP健康检查,可以采取让其剔除不健康节点。
Client客户端
spring: application: name: ek-provider eureka: instance: #eureka客户端需要多长时间发送心跳给eureka服务器,表明他仍然或者,默认30秒 lease-renewal-interval-in-seconds: 5 #eureka服务器在接受到实力的最后一次发出的心跳后,需要等待多久才可以将此实力删除 lease-expiration-duration-in-seconds: 10 metadata-map: company-name: eureka client: #表示eureka client间隔多久去拉取服务器注册信息,默认为30秒 registry-fetch-interval-seconds: 30 #表示eureka client间隔多久去拉取服务器注册信息,默认为30秒 registry-fetch-interval-seconds: 30registry-fetch-interval-seconds: 30 serviceUrl: defauiltZone: http://localhost:8761/eureka/
文章转载至:https://blog.csdn.net/cuiwenb/article/details/79800054
-----------------------------------
作者:怒吼的萝卜
链接:http://www.cnblogs.com/nhdlb/
-----------------------------------