1.構成管理の需要はデータの整合性です
ZooKeeperはプッシュとプルの組み合わせを使用します。クライアントは、サーバーに注意を払う必要があるノードを登録します。ノードのデータが変更されると、サーバーはWatcherイベント通知を対応するクライアントに送信します。クライアントはこれを受信しますメッセージの通知後、サーバーに移動して最新のデータを取得するためのイニシアチブをとる必要があります。
2.ネーミングサービス
サービスによって提供されるURIなどのサービスにアクセスする必要がありますが、URIは可変であるため、変更されたURIに固定名を付け、毎回この名前でサービスURIを取得する必要があります。
Zookeeperは、サービスがノードを作成することを許可し、ノード名はサービス名、データはuriですこのようにして、命名は完了です。
3.負荷分散
1)ロード登録/更新ロードIP:ポートはZooKeeperの一時ノードデータに保存でき、整合性があります
2)ロードヘルスチェック-オフラインロードの場合、それによって作成された一時ノードは自動的に削除され、ip:ポートデータも削除されます。
3)負荷ディスパッチ-負荷ノードの下のすべての一時ノードを取得し、負荷分散アルゴリズムを使用して負荷を選択します
4.マスター選挙
クライアントクラスターは定期的にZooKeeperに作成されます。-/ master_ election /などの一時ノード
2013年9月20日/バインディング。このプロセスでは、1つのクライアントだけがこのノードを正常に作成できます。
クライアントが配置されているマシンがマスターになると同時に、ZooKeeperでノードを正常に作成していない他のゲスト。
クライアントは、ノード/ master_ election / 2013-09-20の子ノードの変更でウォッチャーを登録します。
現在のマスターマシンが動作しているかどうかを監視します。現在のマスターがハングしていることが判明すると、残りのクライアントは
マスター選挙を再実行します。
5.分散ロック
排他ロックを取得する必要がある場合、すべてのクライアントがcreate()インターフェースを呼び出そうとします。
/ exclusive_lockノードの下に一時的な子ノード/ exclusive_lock / lockを作成します。前のセクションでも紹介しましたが、
ZooKeeperは、すべてのクライアントで、1つのクライアントのみが正常に作成できることを保証します。
クライアントはロックを取得したと見なされます。同時に、ロックを取得していないすべてのクライアントは、/ exclusive_lockセクションに移動する必要があります
クリックして子ノードの変更の監視を監視に登録し、ロックノードの変更をリアルタイムで監視します。