Skip to content
Latchkey

ZooKeeper vs etcd: どちらのコーディネーションストアを選ぶか

ZooKeeper は watch とエフェメラルノードを備えた長年確立されたコーディネーションサービスであり、etcd はシンプルな HTTP/gRPC API を備えたモダンな Raft ベースのキーバリューストアです。

ZooKeeper は ZAB 合意の上に構築され、階層的な znode、watch、エフェメラルノードを提供し、多くの古い分散システムを支えています。etcd は Raft を使い、クリーンな gRPC/HTTP API を公開し、lease と watch ストリームをサポートし、標準的な Kubernetes ストアです。ZooKeeper はレガシーエコシステムへの依存で勝り、etcd はモダンな API、よりシンプルなモデル、cloud-native の勢いで勝ります。

ZooKeeperetcd
合意ZABRaft
APIクライアントライブラリgRPC / HTTP
モデルZnode、watchKV、lease、watch
エコシステムレガシーなビッグデータCloud-native / K8s
最適な用途既存の ZK システムモダンな KV/コーディネーション

ユースケースと API

ZooKeeper はすでにその上に構築されたシステム、またはその特定のプリミティブが必要なシステムに適しています。etcd はクリーンな API を備えた新規の cloud-native なコーディネーションと設定のニーズに適しており、Kubernetes 環境ではデフォルトです。

ops と CI への適合

etcd は新規のデプロイにおいて ZooKeeper より運用と理解がシンプルになる傾向があります。両者とも一時的なクォーラムに対して CI で結合テストされ、より高速なマネージド runner がクラスタの起動と watch/lease のテストを短縮します。

結論

既存の ZooKeeper 依存システムをサポートする、またはそのプリミティブが必要なら ZooKeeper。モダンな cloud-native のコーディネーションを構築する、または Kubernetes を運用するなら etcd。新規の作業は概して etcd を好み、ZooKeeper はレガシープラットフォームの下で存続します。

関連ガイド