Zookeeperの実際の使用[終了]


122

私は最近Zookeeperを調べており、誰かが現在それを使用しているかどうか、および保存のために具体的に何を使用していたのか疑問に思いました。

最も一般的な使用例は構成情報ですが、どのような種類のデータとどのくらいの量のデータを保存していますか?


3
それはかなり良いことだここにヤフーからのユースケースがあります、技術のHadoopのグループの下に来る- developer.yahoo.net/blogs/hadoop/2009/05/...
ジョン

使い方の詳細はわかりませんが、HBaseの最新バージョン(オープンソースのBigTable実装)ではZooKeeperを使用しています。
レオP

10
この質問には、すべての回答を組み合わせた場合よりも多くの賛成票があります。Zookeeperには、より優れたユースケースwikiが必要です。
mixdev 2013

1
Netflixでの使用方法を確認してください。github.com/Netflix/curator/wiki/Recipes Curatorは、NetflixのZK用ラッパーライブラリです。
eSniff 2013年

:この記事をチェックstackextend.com/zookeeper/...
Mouad EL Fakir

回答:


13

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


17

17

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

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

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

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



10

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

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

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

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


6

Elastic CloudのZooKeeperに関する優れた記事ZooKeeper-The King of Coordinationがあります。

たとえば、Foundでは、発見、リソースの割り当て、リーダーの選出、優先度の高い通知にZooKeeperを幅広く使用しています。この記事では、このKing of Coordinationを紹介し、FoundでのZooKeeperの使用方法を詳しく見ていきます。



3
  • Storm多くの企業(TwitterとGrouponは2つの有名な会社です)で使用されており、Zookeeperに依存しています。
  • KafkaはLinkedinによって使用され、Zookeeperに依存しています。

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

これにより、コンポーネントサービスをステートレスにして、構成データが必要なときにZookeeperサーバーにダウンロードまたは同期するだけで済みます。運用サーバーを復旧する必要があったことがあるなら、これがどんな頭痛の種であるかがわかるでしょう!

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


2

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




1

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

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.