web-dev-qa-db-ja.com

Zookeeperの実際の使用

私は Zookeeper を最近見ていましたが、誰かが現在それを使っているのか、それを保存するために具体的に何を使っているのか疑問に思いました。

最も一般的なユースケースは構成情報ですが、どのようなデータとどのくらいのデータを保存していますか?

122
Jon

DOSGiの Apache CXF実装 は、サービス登録リポジトリにzookeeperを使用します。個々のコンテナーには、すべてのサービスイベントをリッスンする分散ソフトウェア(dsw)バンドルがあり、サービスステータスが変化すると、配布を示すプロパティがあります。 dswは、参照実装の場合、zookeeperを使用してサービスを一時ノードとして保存するディスカバリバンドルと通信します。他のインスタンスは、ノード構造の変更を探し、ローカルシステムにプロキシを登録します。最終的な結果は、単純なOSGiにコーディングし、透過的な配布を行うことができます。

14
John Ellinwood

HBaseは、Zookeeperを使用して、「ヘッドノード」が現在のバージョンより前に担当していたアクティビティを調整します。 Zookeeperの使用への移行は、中央制御が単一障害点ではなくなったことを意味します。

Zookeeperは非常に用途が広いです。これを使用して分散並行キューを構築する例を次に示します。

http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-Apache-zookeeper/

もちろん、分散システムでリソースロックなどを作成するためにも使用できます。

17
SquareCog
15
dln385

古い質問ですが、このページはzookeeperのユースケースのGoogle検索で最初に表示されるため、更新されたリストを提供するのが最善であると考えました

  1. wikipedia
  2. zookeeper wiki
  3. 実際のユーザー
15
manku

Norbert は、スケーラブルなプロダクションシステムの良い例です。私は一般的に、クラスター化されたサービスを実行するための軽量フレームワークにNetty、Protocol Buffers、およびZookeeperを統合します。プロトコルバッファはサービスAPIを指定するために使用され、Nettyはトランスポートレイヤーの抽象化を実装し、Zookeeperは基本的にフォールトトレラントなディスカバリサービスです。

サービスインスタンスが開始されるたびに、Norbertはそれを特定のサービスタイプの利用可能なインスタンスとして登録します。実装の観点から、2つのZookeeperツリーを作成します。

  • サービスのすべての既知のインスタンスをリストする「/ ServiceName/members」
  • サービスの現在利用可能なインスタンスをリストする「/ ServiceName/available」

各ノードの最も重要なプロパティは、対応するサービスインスタンスへの接続に使用するURLです。これにより、クライアント側の負荷分散が可能になります-Norbertクライアントは、特定のサービス名のURLのリストを見つけて、そのうちの1つへの接続を試行します(たとえば、ラウンドロビンまたはランダム)。

10
ndolgov

素晴らしい記事があります ZooKeeper-The King of Coordination ZooKeeper at Foundについて。

5
herodot

Solrも ZooKeeperの統合に取り組んでいます です。ここで、動的設定、シャーディング、SPOF除去(マスター/スレーブ選択)、リバランスなどに使用していることがわかります。

4
phunt
  • Storm企業数 (TwitterとGrouponはよく知られている2つ)によって使用され、Zookeeperに依存しています。
  • Kafka はLinkedinによって使用され、Zookeeperに依存しています。

Storm は、Zookeeperを使用してすべての状態を保存し、その(分散)コンポーネントサービスのいずれかの停止から回復できるようにします。

これにより、コンポーネントサービスがステートレスになり、構成データが必要なときにZookeeperサーバーと単純にダウンロードまたは同期できます。実稼働サーバーを復旧する必要があった場合、これが頭痛の種であることがわかります。

Kafka キューの消費者は、Zookeeperを使用して、キューから消費されたものに関する情報(最高水準点)を保存できます。

3
Thomas Bratt

私の場合、クラスター使用のために構成ファイルをzookeeperアンサンブルに保存しています。リーダー->フォロワースキーマを使用しています。したがって、ある動物園飼育係がダウンすると、別の動物飼育係に切り替えられます(複製モード)

Zookeeperは、構成以外の多くのことに使用されました。以下に、zookeeperを使用した分散プリミティブの実装の公式リストを示します。

https://zookeeper.Apache.org/doc/current/recipes.html

2
liheyuan

datomic Apache zookeeperを使用して、riakベースのデータストレージを管理します。

現時点では、Riakは結果整合性のみをサポートしているため、Riakで実行されているDatomicシステムは、可用性の高い調整サービスであるApache ZooKeeperも利用します。 Datomicは、ZooKeeperを使用して、トランザクターフェールオーバーの調整、およびCASで更新する必要のあるデータベースごとの少数のキーを使用します。ソース: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html

1
mavbozo

Neo4jは、Zookeeperの高可用性エンタープライズサーバーを使用しています! http://docs.neo4j.org/chunked/milestone/ha.html

1
John Russell

いくつかの HBaseがZooKeeperを使用する方法の詳細 を示します。今後の使用方法に関する情報も含まれます。一般的に、ZooKeeperを使用して実装されたリーダー選挙により、リージョンサーバー上のSPOFを排除するために使用します。

0
phunt