Spring Cloud Zookeeper 相依性監看器

相依性監看器機制讓您能註冊監聽器來監聽您的相依性。此功能實際上是觀察者模式的實作。當相依性變更時,其狀態(變為 UP 或 DOWN),可以套用一些自訂邏輯。

啟用

您需要啟用 Spring Cloud Zookeeper Dependencies 功能才能使用相依性監看器機制。

註冊監聽器

若要註冊監聽器,您必須實作名為 org.springframework.cloud.zookeeper.discovery.watcher.DependencyWatcherListener 的介面,並將其註冊為 bean。此介面提供一個方法

void stateChanged(String dependencyName, DependencyState newState);

如果您想為特定相依性註冊監聽器,dependencyName 將會是您具體實作的鑑別器。newState 提供您關於相依性是否已變更為 CONNECTEDDISCONNECTED 的資訊。

使用存在檢查器

與相依性監看器綁定的是名為存在檢查器的功能。它讓您在應用程式啟動時提供自訂行為,以根據您的相依性狀態做出反應。

抽象類別 org.springframework.cloud.zookeeper.discovery.watcher.presence.DependencyPresenceOnStartupVerifier 的預設實作是 org.springframework.cloud.zookeeper.discovery.watcher.presence.DefaultDependencyPresenceOnStartupVerifier,其運作方式如下。

  1. 如果相依性標記為 required 且不在 Zookeeper 中,當您的應用程式啟動時,它會拋出例外並關閉。

  2. 如果相依性未標記為 required,則 org.springframework.cloud.zookeeper.discovery.watcher.presence.LogMissingDependencyChecker 會記錄相依性遺失,層級為 WARN

由於 DefaultDependencyPresenceOnStartupVerifier 僅在沒有 DependencyPresenceOnStartupVerifier 類型的 bean 時註冊,因此此功能可以被覆寫。