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
,因此可以覆盖此功能。