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