79. Spring Cloud Zookeeper Dependency Watcher
Dependency Watcher 机制使您可以将侦听器注册到您的依赖项。实际上,该功能是Observator
模式的实现。当依赖项发生变化时,其状态(变为 UP 或 DOWN)可以应用一些自定义逻辑。
79.1 Activating
需要启用 Spring Cloud Zookeeper 依赖关系功能,才能使用 Dependency Watcher 机制。
79.2 注册侦听器
要注册侦听器,您必须实现一个名为org.springframework.cloud.zookeeper.discovery.watcher.DependencyWatcherListener
的接口并将其注册为 Bean。该接口为您提供了一种方法:
void stateChanged(String dependencyName, DependencyState newState);
如果要为特定依赖项注册侦听器,则dependencyName
将是您具体实现的区分符。 newState
为您提供有关您的依存关系已更改为CONNECTED
还是DISCONNECTED
的信息。
79.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
,所以可以覆盖此功能。