(15) SpringCloud-使用Eureka叢集搭建實現高可用

JIAN2發表於2022-10-21

在實際開發過程中,我們可能會不停地重啟服務,由於 Eureka 有自己的保護機制,故節點下線後,服務資訊還會一直存在於 Eureka 中。我們可以透過增加一些配置讓移除的速度更快一點,當然只在開發環境下使用,生產環境下不推薦使用。


首先在我們的 eureka-server 中增加兩個配置,分別是關閉自我保護和清理間隔:

eureka.server.enable-self-preservation=false
# 預設 60000 毫秒
eureka.server.eviction-interval-timer-in-ms=5000


然後在具體的客戶端服務中配置下面的內容:

eureka.client.healthcheck.enabled=true
# 預設 30 秒
eureka.instance.lease-renewal-interval-in-seconds=5
# 預設 90 秒
eureka.instance.lease-expiration-duration-in-seconds=5


eureka.client.healthcheck.enabled 用於開啟健康檢查,需要在 pom.xml 中引入 actuator 的依賴,程式碼如下所示。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>


其中:

eureka.instance.lease-renewal-interval-in-seconds 表示 Eureka Client 傳送心跳給 server 端的頻率。
eureka.instance.lease-expiration-duration-in-seconds 表示 Eureka Server 至上一次收到 client 的心跳之後,等待下一次心跳的超時時間,在這個時間內若沒收到下一次心跳,則移除該 Instance。

更多的 Instance 配置資訊可參考原始碼中的配置類:org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean。

更多的 Server 配置資訊可參考原始碼中的配置類:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70006413/viewspace-2919522/,如需轉載,請註明出處,否則將追究法律責任。

相關文章