0

ハロー私は修士課程の学生であるモハマドです。Zookeeperについて質問したいと思います。

zookeeperでの書き込み操作は、最初にクライアントに接続されているサーバーがリーダーに連絡する必要があり、次にリーダーが投票し、サーバーの半分以上を取得すると、接続されているサーバーに応答することを読みました。この操作を続行するためのcliend。

しかし、私の質問は、投票プロセスは何のためにあるのかということです。私は彼らが何に投票するのですか?2番目の質問は、どのように投票してメッセージを送信するか、またはどのようにリーダーに通知するかということです。そして3番目の質問は、なぜ彼らは投票する必要があるのか​​ということです、私は更新データをチェックするためにバージョン管理された番号があると読んだので、なぜ彼らは投票する必要がありますか?

誰でもできるだけ早く返事をくれますか。

前もって感謝します

4

2 に答える 2

1

ZooKeeper は、クライアントがサービスを利用するノード (つまり、マシン) であり、サーバーがサービスを提供するノードである単純なクライアント/サーバー モデルに従います。ZooKeeper サーバーのコレクションは、ZooKeeper アンサンブルを形成します。常に、1 つの ZooKeeper クライアントが 1 つの ZooKeeper サーバーに接続されます。各 ZooKeeper サーバーは、同時に多数のクライアント接続を処理できます。各クライアントは、接続されている ZooKeeper サーバーに定期的に ping を送信し、稼働中で接続されていることを通知します。問題の ZooKeeper サーバーは ping の確認応答で応答し、サーバーも動作していることを示します。クライアントが指定された時間内にサーバーから確認を受信しない場合、クライアントはアンサンブル内の別のサーバーに接続します。 Zookeeper のアーキテクチャを理解するには、これを確認してください

クライアントが特定の znode のコンテンツの読み取りを要求すると、クライアントが接続されているサーバーで読み取りが行われます。したがって、アンサンブルから 1 つのサーバーのみが関与するため、読み取りは迅速かつスケーラブルです。ただし、書き込みを正常に完了するには、ZooKeeper アンサンブルのノードの過半数が使用可能である必要があります。ZooKeeper サービスが開始されると、アンサンブルから 1 つのノードがリーダーとして選出されます。クライアントが書き込み要求を発行すると、接続されたサーバーはその要求をリーダーに渡します。次に、このリーダーは、アンサンブルのすべてのノードに同じ書き込み要求を発行します。ノード (クォーラムとも呼ばれます) の過半数がこの書き込み要求に正常に応答した場合、書き込み要求は成功したと見なされます。次に、書き込み要求を開始したクライアントに成功の戻りコードが返されます。アンサンブルでノードのクォーラムが利用できない場合、ZooKeeper サービスは機能しません。これをチェックして、書き込み操作の投票プロセスを理解してください

サービスの信頼性と拡張性を高めるために、サービスは一連のマシンに複製されます。ZooKeeper は有名な Paxos アルゴリズムのバージョンを使用して、レプリカの一貫性を保ちます。

Zookeeper は次の一貫性を保証します

クライアントからの順次整合性更新は、送信された順に適用されます。

Atomicity Updates は、成功するか失敗するかのどちらかです。部分的な結果はありません。

単一システム イメージクライアントは、接続先のサーバーに関係なく、サービスの同じビューを表示します。

信頼性更新が適用されると、その時点からクライアントが更新を上書きするまで保持されます。この保証には 2 つの結果があります。

適時性 システムのクライアント ビューは、特定の時間内 (数十秒程度) で最新であることが保証されます。システムの変更がこの範囲内でクライアントに表示されるか、クライアントがサービスの停止を検出します。

ここにあなたの質問への答えがあります

質問1 : 書き込み操作をコミットするかどうかの投票です。

質問2 : Zookeeper アンサンブル内のクライアントとサーバー間の通信は、 ZAB プロトコルを使用したメッセージ交換を通じて TCP 接続を介して行われます。

質問3 : サービスの信頼性と耐障害性を高めるには、データをサーバーのクォーラムにレプリケートする必要があります。

于 2014-10-07T09:35:28.977 に答える
1

これが最速です。これらのシステムがどのように機能するかをよりよく理解するには、Nancy Lynch による Distributed Algorithms という本を入手する必要があります。

背景 - アルゴリズム パラダイムは Paxos と呼ばれますが、Zookeeper には少し異なる独自の実装があります。Zookeeper は、2 段階のコミットでデータをコミットします。すべての通信は、FIFO チャネルを介して Atomic Broadcast Protocol を使用して行われ、順序を保持します。

投票プロセスとは - 投票プロセスは、2 段階のコミットではなく、リーダーを見つけるためのものです。投票用紙はありません。最高の zxid を持つノードがリーダーです。

投票はリーダー選挙のためのものです。2 フェーズ コミットは、書き込み操作用です。詳細については、zookeeper のドキュメントと、さらに重要なことに dist algos book をチェックして、これらがなぜこのように動作するのかを理解してください:)。

――サイ

于 2011-01-28T05:12:16.047 に答える