Spring Cloud Zookeeper 依賴監聽器

依賴監聽器機制允許您註冊依賴項的監聽器。實際上,該功能是 Observer 模式的實現。 當依賴項更改時,其狀態(UP 或 DOWN),可以應用一些自定義邏輯。

啟用

需要啟用 Spring Cloud Zookeeper 依賴項功能才能使用依賴項監聽器機制。

註冊監聽器

要註冊監聽器,您必須實現一個名為 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 級別記錄依賴項缺失。

由於僅在不存在 DependencyPresenceOnStartupVerifier 型別的 bean 時才註冊 DefaultDependencyPresenceOnStartupVerifier,因此可以覆蓋此功能。