私は、 etcd3の最新リリース (2016 年 6 月 30 日にリリース) のドキュメントを調べましたetcd2
。それは、
- 単一の TCP 接続を介した多重ストリーミング ウォッチ
- スナップショット作成時のパフォーマンスの低下を避けるための増分スナップショット。
- クライアントのパフォーマンスを改善するための grpc 呼び出し
- ストリーミング リースを多重化し、ネットワークの使用量を減らします。
apache Zookeeperの上に書かれたapache curatorに関して言えば、それの利点は、本番環境で多くのアクティブなクライアントが使用する、信頼できる成熟したプロジェクトであることです。
Zookeeper は、ウォッチごとに個別の tcp 接続を使用し、リースごとに個別の tcp 接続を使用します。また、zookeeper の監視サービスは、監視要求ごとに 1 つのイベントのみを通知するため、特定のノードを継続的に監視する場合は、別の監視要求を送信する必要があります。etcd3は多重化されたストリームを使用しているため、過剰な tcp 接続でネットワークを使い果たすことはありません。
また、etcd3
とzookeeper
はコンセンサスにZAB
との 2 つの異なるアルゴリズムを使用しますraft
。ここで、raft はそれほど複雑ではありません。
実装したいdistributed locks, (use) watches and need to write a mechanism to share commands throughout the cluster using the watch api
。この実装は、Java で記述された ESB にプラグインされます。
ここで私の質問は、実装にどちら (curator/etcd3) を選択する必要があるか、またその理由は何ですか?
これら 2 つの実装の直接的な比較が見つからなかったので、適切な説明が必要です。
前もって感謝します!