7. Spring Cloud Zookeeper Dependency Watcher
依赖监视器机制允许你注册到你的依赖项的监听器。实际上,该功能是 Observator 模式的实现。当一个依赖项发生变化时,其状态(变为 UP 或 DOWN),一些自定义逻辑可以应用。
7.1. 激活
Spring Cloud Zookeeper 依赖功能需要启用,才能使用依赖监视器机制。
7.2. 注册监听器
要注册一个监听器,必须实现一个名为
org.springframework.cloud.zookeeper.discovery.watcher.DependencyWatcherListener 的接口并
将其注册为一个 bean。该接口提供一个方法:
void stateChanged(String dependencyName, DependencyState newState);
如果你想要为某个依赖注册一个监听器,你的具体实现使用的 dependencyName 将会是你的鉴别器。 newState 会为你提供信息,告诉你你的依赖是否已更改到 CONNECTED 或 DISCONNECTED。
7.3. 使用存在性检查器
与依赖监视器绑定的功能是称为存在检查器。它让你在应用程序启动时提供自定义行为,以根据依赖项的状态作出反应。
抽象类
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才会被注册,此功能可以被覆盖。