Zookeeper APIにはzoo_async()という操作が含まれています。ドキュメントには、特定の操作が zoo_async操作の機能
誰かがこの操作の機能を説明し、私たちは、この操作を使用する必要があるかもしれないいくつかのユースケースを提案してくださいすることができ
フラッシュリーダーチャンネル
に使用されていることを述べていますか?
Zookeeper APIにはzoo_async()という操作が含まれています。ドキュメントには、特定の操作が zoo_async操作の機能
誰かがこの操作の機能を説明し、私たちは、この操作を使用する必要があるかもしれないいくつかのユースケースを提案してくださいすることができ
フラッシュリーダーチャンネル
に使用されていることを述べていますか?
この機能のコードはzookeeper.cです。私たちは、それがのZooKeeperサーバーにSyncRequest
を送信していることがわかります。これは、CクライアントAPIでzoo_async
は、JavaクライアントAPIでsync
と等価であることを意味し
struct SyncRequest req;
。
このメソッドを呼び出すと、クライアントのZooKeeper状態のビューがサーバー側のビューに完全に追いついていることを保証できます。この方法は実際に使用されることはめったにありません。ほとんどのZooKeeperの使用パターンは、それを必要としません。 Consistency GuaranteesのApache ZooKeeperのドキュメントには、同時に一貫したクライアント間のビューの問題と、その問題にどのようにしてsync
メソッドを適用できるかについての詳細な議論が含まれています。
C APIのasync
とJava APIのsync
の間の名前の不一致が疑問に思えるかもしれません。この混乱は、操作がクライアントとサーバーの間の状態を同期させるという事実から発生しますが、非同期に実行され、クライアントは完了時にコールバックを受け取ります。したがって、これは「非同期同期」です。 C APIの命名は、関数の非同期性を強調しているように見えますが、Java APIの命名は実行されたアクションを強調することを選択しました。