天天看點

SpringCloud學習筆記-随筆服務注冊服務同步服務續約

服務治理機制

  • 服務注冊
  • 服務同步
  • 服務續約

服務注冊

“服務提供者”在啟動的時候會通過發送REST請求的方式将自己注冊到

Eureka Server 上,同時帶上自身服務的一些中繼資料資訊。Eureka Server 接收到這個REST請求之後,将中繼資料資訊存儲在一個雙層結構Map中,其中第一層的key是服務名,第二層的key是具體服務的執行個體名。

在服務注冊時,需要确認一下eureka.client.register-with-eureka=true 參數是否正确,該值預設時true。若設定為false将不會啟動注冊操作。

服務同步

兩個服務提供者同時注冊到兩個不同的注冊中心上,也就是說,它們的資訊分别被兩個服務注冊中心所維護。此時,由于服務注冊中心之間因互相注冊為服務,當服務提供者發送注冊請求到一個服務注冊中心時,它會将該請求轉發給叢集中相連的其他注冊中心,進而實作注冊中心之間的資訊同步。通過資訊同步,兩個服務提供者的服務資訊就可以通過這兩台服務注冊中心中的任意一台擷取到。

服務續約

在注冊完服務之後,服務提供者會維護一個心跳來持續告訴Eureka Server:“我還活着”,以防止Eureka Server的“剔除任務”将該服務執行個體從服務清單中排除出去,我們稱該操作為服務續約(Renew)。

關于服務續約有兩個重要屬性,我們可以關注并根據需要來進行調整:

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

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

eureka.instance.lease-renewal-interval-in-seconds 參數用于定義服務續約任務的調用間隔時間,預設是30秒。eureka.instance.lease-expiration-duration-in-seconds參數用于定義服務的失效時間,預設是90秒。