2

免責事項: 私は 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 は、このような高速アクセスをサポートしていません)。

配布されているオープン ソース製品のほとんどがこれらの製品に依存しているため、これらの製品が非常に優れていることはわかっています。しかし、分散型オープン ソース製品がそれらを選択する重要でユニークな機能は何ですか?

4

1 に答える 1

6

ファイルシステムのようなインターフェースを実際のファイルシステムと混同していると思います。あなたが言及しているシステムは、クラスターの調整、特に ZooKeeper に適しています。それらが設計されていないのは、ファイルシステムのように大量のデータを保存することです. よりコーディネートに適していると考えるべきです。ファイルシステム。つまり、ZooKeeper や etcd などの一貫したストアにファイルへのパスを格納するファイル システムを想像できますが、ファイル自体は格納できません。それらがファイル システムのようなインターフェイスを公開することは、ファイルを保存する機能とは相関しません。実際、これらのシステムは、メモリに保持できる少量のデータを保存するように設計されています。分散ファイル システムにファイル情報を格納するために ZooKeeper のような一貫性のあるストアを使用することにより、ファイル システムは、クライアントがファイル システム内の変更を順番に確認できるようにします。

ZooKeeper は実際には、分散システムを調整できるプリミティブのセットです。分散システムと ZooKeeper の調整に特に関連するのは、クライアントがクラスター状態の変更をリッスンできるようにするセッション イベント (監視) です。分散システムは通常、ロックなどのために ZooKeeper のウォッチを使用します。ZooKeeper の強力な一貫性保証により、ZooKeeper はそのユース ケースに完全に適しています。

ZooKeeper や etcd などのシステムがどのような用途に使用されているかを知りたい場合は、Apache Curator のレシピを確認してください。Atomixは、コンセンサス アルゴリズム上で分散システムを調整するための同様のタイプの API も実装しています。これらのツールはすべて、コンセンサスベースの分散システムの典型的な使用例を示しています。

注意すべき重要なことは、これらのタイプのシステムはコンセンサス アルゴリズムの上に構築され、通常は状態をメモリに保存するということです。これらは、少量のデータを含むが、高レベルの一貫性が必要な操作に適しています。そのため、分散ロック、構成管理、グループ メンバーシップなどに頻繁に使用されます。

于 2016-04-17T08:40:34.660 に答える