免責事項: 私は etcd プロジェクトと ZooKeeper プロジェクトについてまったくの初心者です。
最近、分散型オープンソース製品に興味を持っています。Presto DB には ZooKeeper、kubernetes には Hive や Etcd などの構成 (調整?) システムが必要なようで、etcd と ZooKeeper の役割を理解することが分散システムを理解する第一歩だと思います。
でも今は迷子になりそうです…etcdとZooKeeperの何が良いのか、何がユニークなのか、まだ理解できませんでした。彼らは、よく分散されたキー値ストレージまたはファイル システムを探しています。商品に対する感想はこちら。印象が製品の特徴を反映していないことは承知しています。しかし、知っておくべき残りの機能は何なのかわかりません。
ZooKeeper: ZooKeeper の概要ページによると、以下のことを保証しています。
- Sequential Consistency - クライアントからの更新は、送信された順に適用されます。
- 原子性 - 更新は成功するか失敗します。部分的な結果はありません。
- 単一システム イメージ - クライアントは、接続先のサーバーに関係なく、サービスの同じビューを表示します。
- 信頼性 - 更新が適用されると、その時点からクライアントが更新を上書きするまで持続します。
- 適時性 - システムのクライアント ビューは、特定の時間内に最新であることが保証されます。
シーケンシャルな一貫性と原子性は、ほとんどのファイル システムでサポートされていない独自の機能ですが、他のファイル システムでは一般的な機能です。
etcd: etcd の README によると。それはに焦点を当てています
- シンプル: curl 可能なユーザー向け API (HTTP+JSON)
- Secure : オプションの SSL クライアント証明書認証
- 高速: インスタンスあたり 1000 回/秒の書き込みのベンチマーク
- 信頼性: Raft を使用して適切に分散
それらのほとんどは、Amazon S3 で一般的なようです (S3 は、このような高速アクセスをサポートしていません)。
配布されているオープン ソース製品のほとんどがこれらの製品に依存しているため、これらの製品が非常に優れていることはわかっています。しかし、分散型オープン ソース製品がそれらを選択する重要でユニークな機能は何ですか?