zookeeper
複数のノードからの強い一貫性の分散データベースは一緒に、分散クラスタを形成する任意のノードをハングアップ、データベースがまだ動作可能です。
スタンドアローンモード
ダウンロードzookeeper
圧縮ファイルと解凍を
➜ ~ tar -xvzf apache-zookeeper-3.5.6-bin.tar.gz
入力しzookeeper
、解凍ディレクトリの名前を変更するconf
ディレクトリの設定ファイルを
➜ apache-zookeeper-3.5.6-bin mv conf/zoo_sample.cfg conf/zoo.cfg
開始zookeeper
使ってstart-foreground
簡単に表示サービス出力の先頭にブートを
➜ apache-zookeeper-3.5.6-bin bin/zkServer.sh start-foreground
仲裁モード
でzoo.cfg
創造に基づいて編集zoo_1.cfg
、zoo_2.cfg
およびzoo_3.cfg
私たちは、付加した追加情報を設定する必要があります。コロンで分離された第2及び第3の部分はあるTCP
アービトレーションと通信クラスタヘッド選出のため、それぞれ、ポート番号。
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
サーバーを起動するとき、私たちは開始されているサーバーを知る必要があります。zookeeper
読むことによってdataDir
で呼ばれるmyid
サーバのファイルを取得するID
情報を。
➜ zookeeper echo 1 > zoo_1/data/myid
➜ zookeeper echo 2 > zoo_2/data/myid
➜ zookeeper echo 3 > zoo_3/data/myid
サービスを開始しzoo_1
、開始
➜ zoo_1 ~/apache-zookeeper-3.5.6-bin/bin/zkServer.sh start-foreground ./zoo_1.cfg
我々は3つしか始めたのでzookeeper
1を、サーバ全体を実行することはできません。
2020-01-01 12:08:37,016 [myid:1] - INFO [QuorumPeer[myid=1](plain=/0:0:0:0:0:0:0:0:2181)(secure=disabled):QuorumPeer@1193] - LOOKING
2020-01-01 12:08:37,016 [myid:1] - INFO [QuorumPeer[myid=1](plain=/0:0:0:0:0:0:0:0:2181)(secure=disabled):FastLeaderElection@885] - New election. My id = 1, proposed zxid=0x0 2020-01-01 12:08:37,021 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@679] www.xinyueylzc.cn- Cannot open channel to 2 at election address /127.0.0.1:3334 java.net.ConnectException: Connection refused (Connection refused) ... 2020-01-01 12:08:37,031 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@679] - Cannot open channel to 3 at election address /127.0.0.1:4445 java.net.ConnectException: Connection refused (Connection refused) ...
クォーラム調停を構成することができる第二のサーバを起動
➜ zoo_2 ~/apache-zookeeper-3.5.6-bin/bin/zkServer.sh start-foreground ./zoo_2.cfg
二つは、サーバークラスタヘッドとして選択しました
2020-01-01 12:10:40,802 [myid:2] - INFO [QuorumPeer[myid=2](plain=/0:0:0:0:0:0:0:0:2182)(secure=disabled):Leader@464] - LEADING - LEADER ELECTION TOOK - 54 MS
2020-01-01 12:10:40,804 [myid:2] - INFO [QuorumPeer[myid=2](www.lafei6d.cn plain=/0:0:0:0:0:0:0:0:2182)(secure=disabled):FileTxnSnapLog@384] - Snapshotting: 0x0 to /tmp/zookeeper/zoo_2/data/version-2/snapshot.0 2020-01-01 12:10:40,812 [myid:2] - INFO [LearnerHandler-www.huizhonggjpt.cn /127.0.0.1:62308:LearnerHandler@406] - Follower sid: 1 : info : 127.0.0.1:2222:2223:participant 2020-01-01 12:10:40,816 [myid:2] - INFO [LearnerHandler-www.shentuylzc.cn /127.0.0.1:62308:ZKDatabase@295] - On disk txn sync enabled with snapshotSizeFactor 0.33
アクセスクラスタ
➜ bin ./zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
例としては、パブリッシュおよびサブスクライブ
スタートはzk_0
、一時的に作成しznode
たノードを:
[zk: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183(CONNECTED) 9] create www.feishenbo.cn-e /master "this is master" Created /master
別のを開始zk_1
するために、znode
監視ポイントを設定します。
[zk: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183(CONNECTED) 3] ls /master true 'ls path [watch]' has been deprecated. Please use 'ls [-w] path' instead. []
そして、別のを開始zk_2
するために、znode
監視ポイントを設定します。
[zk: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183(CONNECTED) 1] ls /master true 'ls path [watch]' has been deprecated.www.jujinyule.com Please use 'ls [-w] path' instead. []
内zk_0
で削除master
、zk_1
およびzk_2
同時に通知メッセージを受信削除されます
zk_0:
[zk: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183(www.letianhuanchao.cn CONNECTED) 10] delete /master zk_1/zk_2: [zk: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183(CONNECTED) 2] WATCHER:: WatchedEvent state:SyncConnected type:NodeDeleted path:/master