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级别记录依赖项丢失。
由于 DefaultDependencyPresenceOnStartupVerifier 仅在不存在类型为 DependencyPresenceOnStartupVerifier 的 bean 时注册,因此此功能可以被覆盖。