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
級別記錄依賴項缺失。
由於僅在不存在 DependencyPresenceOnStartupVerifier
型別的 bean 時才註冊 DefaultDependencyPresenceOnStartupVerifier
,因此可以覆蓋此功能。