Spring Cloud Zookeeper依赖关系观察者

优质
小牛编辑
131浏览
2023-12-01

依赖关系观察器机制允许您将侦听器注册到依赖关系中。功能实际上是Observator模式的实现。当依赖关系改变其状态(UP或DOWN)时,可以应用一些自定义逻辑。

如何激活

Spring Cloud Zookeeper依赖关系功能需要启用从依赖关系观察器机制中获利。

注册听众

为了注册一个监听器,你必须实现一个接口org.springframework.cloud.zookeeper.discovery.watcher.DependencyWatcherListener,并将其注册为一个bean。该界面为您提供了一种方法:

  void stateChanged(String dependencyName, DependencyState newState);

如果要为特定的依赖关系注册一个侦听器,那么dependencyName将是具体实现的鉴别器。newState将提供您的依赖关系是否已更改为CONNECTEDDISCONNECTED的信息。

存在检查

绑定与依赖关系观察器是称为存在检查器的功能。它允许您在启动应用程序时提供自定义行为,以根据您的依赖关系的状态作出反应。

抽象org.springframework.cloud.zookeeper.discovery.watcher.presence.DependencyPresenceOnStartupVerifier类的默认实现是org.springframework.cloud.zookeeper.discovery.watcher.presence.DefaultDependencyPresenceOnStartupVerifier,它以以下方式工作。

  • 如果依赖关系标记为我们required,并且不在Zookeeper中,则在引导时,您的应用程序将抛出异​​常并关闭
  • 如果依赖关系不是requiredorg.springframework.cloud.zookeeper.discovery.watcher.presence.LogMissingDependencyChecker将在WARN级别上记录该应用程序

功能可以被覆盖,因为只有当没有DependencyPresenceOnStartupVerifier的bean时才会注册DefaultDependencyPresenceOnStartupVerifier