私は現在、サーバーのグループを調整する方法として memcached を調べていましたが、途中でApache の ZooKeeperに出会いました。面白そうですし、Yahooも使っているので悪くはないのですが、聞いたことがないので半信半疑です。他の誰かが試してみましたか?コメントやアイデアはありますか?
3 に答える
ZooKeeperとMemcachedの目的は異なります。memcachedを使用してサーバーの調整を行うことができますが、この作業のほとんどは自分で行う必要があります。Memcachedは、複数のクライアントが使用する共通のデータルックアップをキャッシュするという点でのみ調整を許可します。ZooKeeperのドキュメントを読むと、これよりもはるかに幅広い焦点が当てられています。ZooKeeperは、サーバークラスタリングのサポートを提供しているようです。これは、memcachedが提供するキャッシュクラスタリングとは異なります。
memcachedに関するBradFitzpatrickのLinuxJournalの記事を見て、私が何を意味するのかをよりよく理解してください。
Zookeper の機能の概要については、作成者による次のプレゼンテーションをご覧ください。他にも多くの機能があります (キューの作成、ピアのグループ間でのマスター プロセスの選出、高パフォーマンスのランタイム構成の分散、分離されたプロセスのランデブー ポイント、プロセスがまだ実行されているかどうかの判断など)。
http://zookeeper.sourceforge.net/index.sf.shtml
あなたの質問に答えるために、「調整」が探しているものである場合、Zookeeper は memcached よりもはるかに優れています。
Zookeeper は、サーバー間でデータを調整するのに最適です。すべてのトランザクションを順序付けし、トランザクションが順番に発生することを保証するという優れた仕事をします。ただし、最初に侵入したときのドキュメントはひどいものです。特定のイベントを適切に処理する方法について、具体的な例や説明が十分にない非常に「ハイレベル」です。含まれている例の 1 つ (バージョン 3.3.3 の時点) には、独自のバグがありました。
また、コードは、イベント ドリブンの相互作用とポーリングの相互作用を認識している必要があります。大規模に分散されたアーキテクチャでは、「イベント」に基づいて行動するときに、環境にとって望ましくないスタンピードを不注意に作成する可能性があります (群集効果)。