Spring Cloud Zookeeper 依賴監視器
依賴觀察器機制允許您為您的依賴項註冊監聽器。此功能實際上是 Observer 模式的實現。當依賴項更改其狀態(變為 UP 或 DOWN)時,可以應用一些自定義邏輯。
註冊監聽器
要註冊監聽器,您必須實現名為 org.springframework.cloud.zookeeper.discovery.watcher.DependencyWatcherListener 的介面,並將其註冊為 bean。該介面為您提供一個方法
void stateChanged(String dependencyName, DependencyState newState);
如果您想為特定的依賴項註冊監聽器,dependencyName 將是您具體實現的判別器。newState 為您提供有關您的依賴項是否已更改為 CONNECTED 或 DISCONNECTED 的資訊。
使用存在檢查器
與依賴觀察器繫結的是名為存在檢查器的功能。它允許您在應用程式啟動時提供自定義行為,以根據依賴項的狀態做出反應。
抽象類 org.springframework.cloud.zookeeper.discovery.watcher.presence.DependencyPresenceOnStartupVerifier 的預設實現是 org.springframework.cloud.zookeeper.discovery.watcher.presence.DefaultDependencyPresenceOnStartupVerifier,其工作方式如下。
-
如果依賴項被標記為
required並且不在 Zookeeper 中,那麼當您的應用程式啟動時,它會丟擲異常並關閉。 -
如果依賴項不是
required,則org.springframework.cloud.zookeeper.discovery.watcher.presence.LogMissingDependencyChecker會在WARN級別記錄依賴項丟失。
由於 DefaultDependencyPresenceOnStartupVerifier 僅在不存在型別為 DependencyPresenceOnStartupVerifier 的 bean 時註冊,因此此功能可以被覆蓋。