

低版本
版本信息:
spring boot 1.5.3
spring-cloud-dependencies:Edgware.SR3
#writeRead緩存定時同步到ReadOnly的緩存 eureka.server.responseCacheUpdateIntervalMs =30000 #拉取服務注冊表的間隔 eureka.client.registryFetchIntervalSeconds = 30000 #心跳的間隔 eureka.client.leaseRenewalIntervalInSeconds = 30 #定時檢查心跳 eureka.server.evictionIntervalTimerInMs = 60000 #如果超過多少秒沒檢測到,視為服務down機 eureka.instance.leaseExpirationDurationInSeconds = 90
高版本
spring boot 2.1.6
spring cloud :Greenwich.SR1
eureka服務器設置:
eureka: server: enable-self-preservation: false #關閉自我保護機制 response-cache-update-interval-ms: 5000 #writeRead緩存定時同步到ReadOnly的緩存 eviction-interval-timer-in-ms: 5000 #定時檢查心跳
client的設置:
eureka: instance: lease-renewal-interval-in-seconds: 5 #發送心跳 lease-expiration-duration-in-seconds: 8 #這個實例多少秒沒檢查到心跳視為下線 client: registry-fetch-interval-seconds: 10 #定時拉取注冊表
案例分析:客戶端設置的參數的效果
我的服務端設置成這樣
eureka: enable-self-preservation: false response-cache-update-interval-ms: 5000 eviction-interval-timer-in-ms: 1000
我的客戶端設置成這樣:
eureka: instance: lease-renewal-interval-in-seconds: 30 lease-expiration-duration-in-seconds: 8 client: serviceUrl: defaultZone: http://localhost:8761/eureka/ registry-fetch-interval-seconds: 10
1. 可以看到Running the evict task with compensationTime 0ms 這一句話是1秒一次,這個就是代表定時檢查心跳的間隔
2.可以看到up->cancelled時間大概是8秒 這就是我設置的lease-expiration-duration-in-seconds的時間,up->up時間大概是30秒,這就是 lease-renewal-interval-in-seconds的時間