76

ZooKeeperは、データセンター向けの可用性の高い調整サービスです。これは、Hadoopプロジェクトに端を発しています。その上に、ロック、フェイルオーバー、リーダー選出、グループメンバーシップ、およびその他の調整の問題を実装できます。ZooKeeperに代わるものはありますか?(もちろん自由ソフトウェア)

4

11 に答える 11

55

Zookeeper/ CuratorEurekaetcd、および consul を広範囲に調べました。Zookeeper/Curator と Eureka は、多くの点で最も洗練されており、Java の世界にいる場合に統合するのが最も簡単です。Etcdは非常にクールで非常に柔軟ですが、実際には単なる HA キー ストアであるため、独自のサービス ディスカバリ システムにするには、多くのコードを記述する必要があります。

Consulは (私にとって) 両方の長所を備えています。これは、 serfの上に書かれた独自のサービス発見システムであり、クラスターのコンセンサスに raft を使用し、通信に gossip を使用します。十分に文書化された REST API を使用して検出/登録エンドポイントを公開し、DNS SRV レコードを使用してサービスを検出し、構成を使用してサービスを登録することもできます (つまり、クライアントを統合できないデータベースまたはアプリケーションを登録できます)。または、サービス ディスカバリをアプリから切り離したいだけの場合)

Consul に関するブログ記事を書きました。ここで詳細を確認し、私の「試してみる」デモについて説明します。

カスタム コードがどのように見えるかについて詳しく知りたい場合は、etcd と docker を使用したサービス ディスカバリについても説明しました。

最後に一つだけ!etcd と consul は go で記述されているため、Zookeeper などの Java ソリューションよりもメンテナンスがはるかに簡単です。必要なのは consul / etcd バイナリだけです。依存関係も、リンクされたライブラリも、jvm もありません。

于 2014-05-24T21:20:17.833 に答える
10

Accord (C) とOpenReplica/ConCoord (Python) を発見したところ、興味深いソリューションになる可能性があります

[編集] Vagrant と Packer で有名な Hashicorp のクルーは、Serfと呼ばれる「サービスの発見とオーケストレーションのための分散型ソリューション」を準備しています。

[EDIT2] Hashicorp が再びストライキ ! Serf の上に構築されたConsulがリリースされました。売り込み: 「サービスの検出と構成のためのソリューションであり、完全に分散され、可用性が高く、複数のデータセンターにまたがる数千のノードとサービスに拡張可能です」.

于 2012-05-16T10:01:12.930 に答える
8

はい、 Doozerd (https://github.com/ha/doozerd)もあります。よく見てください。これは、Heroku によって開発された、優れたシングル バイナリ分散コーディネーション サービスです。java/python/ruby/node のバインディング/ライブラリを使用。始めるのも遊ぶのもとても簡単です。

于 2011-06-05T21:23:48.867 に答える
4

私の研究グループのOpenReplicaは、データセンター向けの高可用性FOSS調整サービスです。これは、ロック、フェイルオーバー、リーダー選出、グループメンバーシップ、およびその他の調整サービスの実装に使用できます。これは、2つの重要な点でZooKeeperとは異なります。

  • オブジェクト指向APIを使用します。これにより、調整サービスの作成がはるかに簡単になります。OpenReplicaの同期コードは、対応する教科書とまったく同じように見えます。ZooKeeperやChubbyのように、ファイルやアップコールベースのAPIをマスターする必要はありません。

  • これにより、レプリカセットの動的なメンバーシップ更新が可能になります。静的構成ファイルは必要ありません。システムはDNS(Authority、OpenReplicaのスレーブ、またはAmazon Route 53)に統合されています。

システムを積極的にサポートしておりますので、ご不明な点がございましたらお気軽にお問い合わせください。

于 2012-05-19T04:57:58.123 に答える
1

さまざまなエンジニアリングのトレードオフを最適化するさまざまなツールがあります。

  • ZooKeeper読み取り用にわずかにスケーリングします。多くのオブザーバーを含む書き込みは遅くなる可能性があります。それは証明されており、かなりのコミュニティがあります。
  • Accord書き込み集中型の用途には興味深いようですが、典​​型的なユースケースにはすでにドメイン固有のソリューション (ロギング、テレメトリなど) があります。

他のものはやや興味深いですが、一般的に証明されていません。プロダクションでの使用を意図している場合は、これを誤解しないでください。

于 2012-05-23T11:59:46.927 に答える
1

Zookeeper、etcd、および Doozer のこの比較を見つけました: http://devo.ps/blog/zookeeper-vs-doozer-vs-etcd/

Serf (serfdom.io) もシンプルなため、優れたソリューションです。ただし、SERF は、すべてのクラスター ノードにカスタム イベントを送信できる単なるクラスター マネージャーであることを考慮する必要があります。それは素晴らしいことですが、独自のシェル スクリプト (別名イベント) を作成する必要があります。この例を参照してください: " https://www.digitalocean.com/community/articles/how-to-set-up-a-serf-cluster-on-several-ubuntu-vps "

利点は、非常に単純なクラスター マネージャーが得られ、これをお気に入りの構成、展開、または継続的統合ツールと組み合わせることができることです。

于 2014-04-24T16:35:19.850 に答える
1

興味深いように見える github に Noah と呼ばれるプロジェクトがあり、「Apache ZooKeeper に大まかに基づいている」https://github.com/lusis/Noahであり、REST サポートが重要な機能であると述べています (ZK では、これは contrib/option としてではなく、内蔵より)。

于 2011-05-19T15:55:52.580 に答える
0

Corosyncも ZooKeeper のようです。

于 2012-10-26T07:02:08.843 に答える