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