1.zookeeperの動作環境にはJDKが必要です
https://www.oracle.com/cn/java/technologies/javase-jdk15-downloads.html
2.zookeeperの非ソースバージョンをダウンロードします
https://zookeeper.apache.org/releases.html
3. ZooKeeperソフトウェア圧縮パッケージを解凍した後、最初のフォルダーである限り、2つのフォルダーがあります。
ZooKeeperソフトウェアのファイルとディレクトリは次のとおりです。
binディレクトリ |
zkサービスプロセス、zkクライアント、およびその他のスクリプトを含むzk実行可能スクリプトディレクトリ。その中で、.shはLinux環境のスクリプトであり、.cmdはWindows環境のスクリプトです。 |
会議ディレクトリ |
構成ファイルディレクトリ。zoo_sample.cfgはサンプル構成ファイルであり、独自の名前(通常はzoo.cfg)に変更する必要があります。log4j.propertiesは、ログ構成ファイルです。 |
ドキュメントディレクトリ |
いくつかのドキュメントを保存する |
Libディレクトリ |
zkが依存するパッケージ。 |
4.構成サンプルzoo_sample.cfgはconfディレクトリにあります。zkを実行するには、その名前をzoo.cfgに変更する必要があります。
5.クラスターモードでは、すべてのzkServerプロセスは、異なるマシンにデプロイされたときに同じ構成ファイルを使用できます
(異なるclientPortとサーバーのport1 、port2、portの同じマシンにデプロイされたときに変更するには、競合を回避します)、たとえば次のようになります。
initLimit |
ZooKeeperクラスターモードには複数のzkプロセスが含まれ、そのうちの1つがリーダーであり、残りのプロセスはフォロワーです。 |
syncLimit |
フォロワーとリーダーの間でメッセージ、要求、および応答を送信するための最大時間を構成します。 |
tickTime |
TickTimeは、上記の2つのタイムアウト構成の基本単位です。たとえば、initLimitの場合、構成値は5であり、タイムアウト期間が2000ms * 5 = 10秒であることを示します。 |
server.id = host:port1:port2 |
idは、zkプロセスのIDを表す数値であり、このIDは、dataDirディレクトリ内のmyidファイルの内容でもあります。 |
dataDir |
ZKはに新しいディレクトリに対応する件のデータのフォルダ(と同じDATADIR)カタログのトランキングモードをしたときに、新しいファイルMYIDを作成します。myidファイルのコンテンツには1行しかありません。これは、zkプロセスのIDを表すserver.idのIDに対応し、コンテンツは1〜255の数字のみにすることができます。上記の例の3つのサーバーのmyidコンテンツは、それぞれ1、2、および3です。 |
6.ダブルクリックしてzkServer.cmdを実行し、zkサービスを開始すると、3台のマシンにリーダーと2つのフォロワーがあることがわかります(リーダーとフォロワーは、複数のzkサーバーが起動した場合にのみ表示されます)。
(エラーJAVA_HOMEが設定されていないことが報告された場合は、zkEnvでJAVA_HOMEを確認する前にJDKの場所を追加して、JAVA_HOME = C:/ Program Files / JetBrains / JDK / jdk-15.0.1を設定します)
7.clusterコマンドを接続します。
zkCli -server 192.168.229.160:2181,192.168.229.161:2181,192.168.229.162:2181
CONNECTEDは、クラスターに接続することを意味します。図に示すように、接続するサーバーはランダムです。これは、192.168.229.162:2181が接続されていることを意味します。
PS:Zookeeperにはそのような機能があります。クラスター内のマシンの半分以上が正常に動作している限り、クラスター全体を外部から利用できます。つまり、2つのzkがある場合、1つは死ぬことはできません。3つのzkがある場合、最大で1つが死ぬことができます。4つのzkがある場合、同じものが最大で1つ死ぬことができます。したがって、コストパフォーマンスの観点から、奇数のzkノードを選択します。