apache-zookeeper - 使用 zookeeper 广播事件
问题描述
我想通过 zookeeper 3.4+ 广播事件。
假设我有一些生产者同时增加一个计数器和监听这个增量的听众。
我发现我可以从生产者和侦听器更新 znode 值,这些 znode 更改将被通知。
我可以使用 apache curator shared count。我可以在此共享计数众所周知的路径上分配侦听器,如果我将更新(增加)共享计数值,则会通知侦听器。
我也可以使用分布式原子长和节点缓存侦听器。情况相同,我将在众所周知的路径上创建这个原子长。侦听器将侦听此路径上的 znode 更改。当我将更新 atomic long 值时,将通知这些节点值的侦听器。
1)例如上面的例子,我应该使用哪种动物园管理员结构?
2) 我能否确定每次更新共享计数或分布式原子长时都会被广播并保证通知听众?
3) 任何听众都可能错过计数更新事件吗?
解决方案
路径子缓存应该是选择。它比其他的更通用,并且比节点缓存更好,因为它提供了事件的类型 ( PathChildrenCacheEvent.Type
) - 它是 CONNECTION_RECONNECTED,还是不是。
有关更多信息,请参阅 Curator 的源代码。
推荐阅读
- javascript - 在闭包内使用下划线去抖动功能
- android - 如何将 AsyncTask 的结果传递给另一个 Activity?
- git - Git 双仓库管理
- reinforcement-learning - 稳定的基线:DQN 表现不佳?
- w3c - 是否可以创建一个免费且可参考的网站?
- html - 在隐藏的汉堡菜单中转换导航栏
- html - 如何在html中的标签中均匀地隔开输入框
- flutter - 颤动 - pubspec.yaml 不更新
- kubernetes - 签名的 kubernetes CSR 中缺少主题备用名称 (SAN)
- python - python中perl bless的等价物