ZooKeeperマイクロサービスレジストリクラスターの構成に関する注意事項

1.マイクロサービス呼び出しのアイデア

1.1問題を呼び出す従来の方法の説明

ここに画像の説明を挿入

1.2マイクロサービスのアイデア-登録センター

マイクロサービス:アーキテクチャ設計は分散型のアイデアを採用しています。サーバーに障害が発生した場合、自動障害移行を実現できます。人の介入は必要ありません。ここに画像の説明を挿入
レジストリ実現原則:
1。サーバーの起動時、サーバーの状態(サービス名/ IP /ポート)は一緒にレジストリに書き込まれます
。2。レジストリはサーバー情報を受信すると、サービスリストデータを動的に維持します
。3/ 4。クライアント(消費者)が起動すると、最初にレジストリにリンクします。すべてのサービスリストデータを取得し、サービスリストデータをローカルに保存します
。5。コンシューマーがビジネスコールを実行するときに、複数のサービスプロデューサーが存在する場合は、負荷分散のアイデアを使用して、アクセスするサービス(RPC)の1つを選択します。
。6 サーバーがダウンすると、レジストリのハートビート検出メカニズムにより、すべてのサービスリストデータが動的に維持されます。ネットワーク全体がブロードキャストされ、すべてのクライアント(消費者)にサービスリストデータの更新を通知します。サービスリストが更新され、データが同期されます。ブロックされた状態になります。

1.3マイクロサービス思考の負荷分散の説明

1.3.1一元化された負荷分散

注:すべてのリクエストはサーバーで一律に管理する必要があります。
ケース:Nginxは集中型の負荷分散ですが、nginxの主な役割はリバースプロキシとして機能することです。

1.3.2クライアントの負荷分散

説明:要求が送信される前に、各クライアントはどのサーバーにアクセスする必要があるかを非常に明確に認識し
ています。サーバー内。クライアントはバックエンドサーバーに直接アクセスし、負荷を共有します。

2.登録センター-zookeeperのインストール

説明:特定のインストール方法パラメーターのクラス前情報ドキュメント。
ここに画像の説明を挿入

2.1zk開始コマンド

binディレクトリにジャンプすると、zkの起動コマンドとシャットダウンコマンドは次のようになります
。shzkServer.shstartまたは./zkServer.shstart
sh zkServer.sh stop
sh zkServer.sh status
ここに画像の説明を挿入

ここに画像の説明を挿入

2.2クラスター関連の概念について

2.2.1複数のサーバーがクラスターを構築できます

式:サバイバルノード> N / 2
算術計算:
1ノード1-1> 1/2偽物はクラスターを構築できません
2ノード2-1> 2/2偽物はクラスターを構築できません
3ノード3-1> 3/2クラスターを構築することは本当に可能です。
結論:クラスターの最小単位は3です。

2.2.2クラスターは一般的に奇数のユニットです。なぜですか?

3ノード3-1> 3/2は実際にテーブルダウンクラスタリングを構築できます
4ノード4-1> 4/2は実際にクラスターダウンテーブルを構築できます1
注:偶数ビルドテーブルと奇数ステーションを構築するため耐災害性効果は同じなので、通常は奇数です。

2.2.3クラスターでのスプリットブレイン現象?

説明:クラスターの作業中のホストの予期しないダウンタイムのため、その後、クラスターは選挙を開始しました。複数の連続したフラット投票がある場合、スプリットブレインが発生する可能性があります。
スプリットブレインの確率は次のとおりです。1 / 8 = 12.5%
効果の程度スプリットブレイン現象の発生を減らす:ノードの数を増やす
ここに画像の説明を挿入

2.3zkクラスター構築の問題についての説明

1)エラーの確認方法
ここに画像の説明を挿入

2.2

2)myidの場所と値をここに画像の説明を挿入
確認します3)クラスター構成を確認します
ここに画像の説明を挿入

2.4zkクラスター選択の仕様について

説明:zkクラスター選択ルールはmyidの最大値を優先するアルゴリズムです。選択が終了すると、残りのノードが新しいマスターのスレーブになります。
質問1:1〜7個のzkノードがで開始された場合シーケンス質問
1:マスターは誰ですか?4
質問2:ホストとして選出されることは決してありませんか?1,2,3
ここに画像の説明を挿入

2.5ZKの動作原理の説明

Zookeeperクラスターのリーダーは、クラスターステータスの同期データの監視を担当し、フォロワーは主に、サービスリスト情報を取得するためのクライアントリンクを担当します。同時に、投票に参加します。

3.Zookeeperクラスターのインストール

3.1フォルダを準備します

zookeeperルートディレクトリに新しいフォルダzkClusterを
ここに画像の説明を挿入
作成します。zk1/ zk2 / zk3フォルダを
ここに画像の説明を挿入
作成します。各フォルダにデータ/ログフォルダを作成します。

mkdir {zk1,zk2,zk3}/{data,log}

ここに画像の説明を挿入

myidファイルを追加します

zk1 / zk2 / zk3のデータフォルダに新しいファイルmyidを作成します。その内容は1/2/3で、zkノード番号に対応します。
ここに画像の説明を挿入

myidファイルを編集し、番号を定義します。
ここに画像の説明を挿入

3.2構成ファイルの編集

zoo_sample.cfgをzoo1.cfgにコピーし、構成ファイルを変更します。
ここに画像の説明を挿入

3.3zoo1.cfgを変更する

ここに画像の説明を挿入
構成が完了したら、zoo1.cfgを2つのコピーにコピーします。その後、対応するフォルダーディレクトリを変更する必要があります。また、別のポートを変更することもできます。

3.4ZKクラスターテスト

次のコマンドでzkクラスターを起動します。

sh zkServer.sh start   zoo1.cfg
sh zkServer.sh stop    zoo1.cfg
sh zkServer.sh status  zoo1.cfg

マスターとスレーブの関係とスレーブの説明を
ここに画像の説明を挿入
確認してくださいマスターとスレーブの関係とマスターの説明を確認してください。
ここに画像の説明を挿入

3.5Zookeeperクラスターの説明について

Zookeeperクラスターのリーダーは、クラスターのステータスを監視する責任があり、フォロワーは、サービスリスト情報を取得するためのクライアントリンクを主に担当します。同時に、投票に参加します。

おすすめ

転載: blog.csdn.net/weixin_40597409/article/details/111182723