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为您提供有关您的依赖项是否已更改为CONNECTED或DISCONNECTED的信息。
使用 Presence Checker
与依赖项观察器关联的功能是“存在性检查器”。它允许您在应用程序启动时提供自定义行为,以便根据依赖项的状态做出反应。
抽象类 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级别记录该依赖项缺失的信息。
由于DefaultDependencyPresenceOnStartupVerifier 只有在没有类型为DependencyPresenceOnStartupVerifier 的 bean 时才会被注册,因此可以覆盖此功能。