【问题标题】:Preiodically read zookeeper node定期读取 zookeeper 节点
【发布时间】:2015-06-21 22:08:40
【问题描述】:

我有一个用例,我想定期读取 zookeeper 节点。有什么方法可以在 zookeeper 中异步执行此操作?

我读到了exists(),但它只有在节点数据发生变化时才会回调。

【问题讨论】:

  • 为什么即使上次读取后数据没有改变,你还想读取它?如果客户端监视数据更改事件,则会收到通知,因此始终可以拥有最新数据。
  • 还有另一个应用程序(比如 X)定期更新节点。如果 application(X) 出现故障,它将不会更新 zookeeper 节点。我的应用程序(Y)必须检查节点的时间戳,如果时间戳没有更新很长时间,它将重新启动应用程序(X),假设应用程序(X)已关闭。由于没有服务可以让我不断更新 zookeeper 节点,我将不得不轮询节点。

标签: apache-zookeeper


【解决方案1】:

如果您在 Spring 中使用 Java,请使用带有注解 @Scheduled 的方法创建一个组件。添加延迟,并在方法中将代码放入您读取 zNode 的位置并检查其他应用程序是否处于活动状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 2017-09-14
    相关资源
    最近更新 更多