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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM