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