(15) java Spring Cloud+Spring boot+mybatis企業快速開發架構之SpringCloud-使用Eureka叢集搭建實現高可用服務註冊中心
阿新 • • 發佈:2021-09-17
在實際開發過程中,我們可能會不停地重啟服務,由於 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。