Zookeeper API包含一个名为zoo_async()的操作。该文件说,鉴于操作用于zoo_async操作的功能
冲洗领导频道
是否有人可以解释这种操作的功能和建议,我们可能需要使用此操作一些使用情况?
Zookeeper API包含一个名为zoo_async()的操作。该文件说,鉴于操作用于zoo_async操作的功能
冲洗领导频道
是否有人可以解释这种操作的功能和建议,我们可能需要使用此操作一些使用情况?
此功能的代码是zookeeper.c。我们可以看到,它正在发送SyncRequest
到的ZooKeeper服务器:
struct SyncRequest req;
这意味着zoo_async
C客户机API中等同于Java客户端API中sync
。
可以调用此方法来保证客户端的ZooKeeper状态视图完全被服务器端视图所覆盖。这种方法在实践中很少使用。大多数ZooKeeper使用模式不需要它。关于Consistency Guarantees的Apache ZooKeeper文档包含关于同时一致的跨客户端视图以及如何将sync
方法应用于该问题的问题的进一步讨论。
您可能想知道C API中的async
与Java API中的sync
之间的命名不一致。这种混淆源于操作是客户端和服务器之间的同步状态,但它是异步执行的,客户端在完成时接收回调。因此,这是一个“异步同步”。看来C API中的命名选择强调函数的异步性质,而Java API中的命名选择强调执行的操作。