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