我想通过动物园管理员3.4+转播活动。
假设我有一些生产者同时递增一个计数器,而监听器正在观察这个递增。
我发现我可以从生产者和监听器更新znode的值,对这些znode的更改将被通知。
我可以使用apache curator shared count。我可以在这个共享计数的已知路径上分配监听器,如果我要更新(递增)共享计数值,监听器将收到通知。
我也可以使用distributed atomic long和Node cache listener。情况是一样的,我将在常见的路径上创建这个原子长。侦听器将侦听此路径上的znode更改。当我更新原子长值时,这些节点值的监听器将会收到通知。
1)例如上面的例子,我应该使用哪种动物园管理员结构?
2)我能确保对共享计数或分布式原子long的每一次更新都会被广播,并保证会通知监听器吗?
3)任何监听器都有可能错过计数更新事件吗?
发布于 2018-07-06 04:32:56
Path Children Cache应该是最佳选择。它比其他方法更通用,而且它比Node Cache更好,因为它提供了事件的类型(PathChildrenCacheEvent.Type) -它是否是CONNECTION_RECONNECTED。
有关更多信息,请参考策展人的源代码。
https://stackoverflow.com/questions/51188980
复制相似问题