1. 程式人生 > >【轉】spring cloud eureka 參數配置

【轉】spring cloud eureka 參數配置

lint 客戶 就會 大於 health 微服務 表示 安全 穩定

eureka.client.registry-fetch-interval-seconds

表示eureka client間隔多久去拉取服務註冊信息,默認為30秒,對於api-gateway,如果要迅速獲取服務註冊狀態,可以縮小該值,比如5秒

eureka.instance.lease-expiration-duration-in-seconds

leaseExpirationDurationInSeconds,表示eureka server至上一次收到client的心跳之後,等待下一次心跳的超時時間,在這個時間內若沒收到下一次心跳,則將移除該instance。

  • 默認為90秒

  • 如果該值太大,則很可能將流量轉發過去的時候,該instance已經不存活了。

  • 如果該值設置太小了,則instance則很可能因為臨時的網絡抖動而被摘除掉。

  • 該值至少應該大於leaseRenewalIntervalInSeconds

eureka.instance.lease-renewal-interval-in-seconds

leaseRenewalIntervalInSeconds,表示eureka client發送心跳給server端的頻率。如果在leaseExpirationDurationInSeconds後,server端沒有收到client的心跳,則將摘除該instance。除此之外,如果該instance實現了HealthCheckCallback,並決定讓自己unavailable的話,則該instance也不會接收到流量。

  • 默認30秒

eureka.server.enable-self-preservation

是否開啟自我保護模式,默認為true。

默認情況下,如果Eureka Server在一定時間內沒有接收到某個微服務實例的心跳,Eureka Server將會註銷該實例(默認90秒)。但是當網絡分區故障發生時,微服務與Eureka Server之間無法正常通信,以上行為可能變得非常危險了——因為微服務本身其實是健康的,此時本不應該註銷這個微服務。

Eureka通過“自我保護模式”來解決這個問題——當Eureka Server節點在短時間內丟失過多客戶端時(可能發生了網絡分區故障),那麽這個節點就會進入自我保護模式。一旦進入該模式,Eureka Server就會保護服務註冊表中的信息,不再刪除服務註冊表中的數據(也就是不會註銷任何微服務)。當網絡故障恢復後,該Eureka Server節點會自動退出自我保護模式。

綜上,自我保護模式是一種應對網絡異常的安全保護措施。它的架構哲學是寧可同時保留所有微服務(健康的微服務和不健康的微服務都會保留),也不盲目註銷任何健康的微服務。使用自我保護模式,可以讓Eureka集群更加的健壯、穩定。

eureka.server.eviction-interval-timer-in-ms

eureka server清理無效節點的時間間隔,默認60000毫秒,即60秒

【轉】spring cloud eureka 參數配置