2

私が持っているケースは、現在、3 つの異なるサーバーで実行されている 3 つの memcached インスタンスがあることです。私のアプリケーションは現在、同じ 3 つの異なるノードにあります。すべてのアプリケーション サーバーはすべての memcached サーバーを認識していますが、そのうちの 1 つがダウンしても、私には通知できません。アイデアは、memcached サーバーを独自のノードに移動することです。

これを解決する代替手段として CouchBase を検討し始めましたが、正確に機能するかどうかはわかりません。

各アプリケーション ノードに CouchBase クラスタを配置し、それらをさまざまな memcached サーバーに接続すると、CouchBase がどのサーバーが稼働しているかを監視して認識できるようになりますか?

その場合、現在 memcached インスタンスに関連付けられているアプリケーションは、memcached インスタンスの 1 つがダウンしている場合にデータを取得する方法をどのように知るのでしょうか? それとも、それをどこに保管するかを仲介するのは CouchBase ですか?

4

2 に答える 2

2

Couchbase は、標準の memcached インスタンスを置き換える際に使用できる非常に適応性の高いプラットフォームです。アプリケーションからcouchbaseインスタンスに多くの耐障害性を移すことができます。

PHP を使用しているため、Couchbase クラスターにアクセスする際には PHP SDK を使用することをお勧めします。ここから入手できます: http://www.couchbase.com/develop/php/current

ここで重要なことは、SDK for PHP が「vbucket 対応」であることです。これが意味することは、これを使用して Couchbase クラスターに接続すると、コンストラクターに入力したアドレスからすべてのノードのすべての情報が収集されるということです。例えば:

#Create the Couchbase object
$cb_obj = new Couchbase("127.0.0.1:8091", "user", "pass", "default");

これにより、ノードがダウンした場合などに必要なすべてのフェイルオーバーを単独で処理できる、コマンドを実行できるオブジェクトが作成されます。各言語には独自の小さなコード プロセスがありますが (私自身は通常 Python を使用します)、慣れれば非常に効果的です。

クラスタは、コマンド ライン インターフェイスまたは にアクセスして Web URL から管理できますhttp://<nodehostname>:8091/。これは、インストール後に初期クラスターをセットアップするためにアクセスする URL でもあります。

スタンドアロンの memcached の代わりとして、Couchbase を強くお勧めします。

于 2012-04-13T18:39:36.403 に答える
1

Couchbase では、3 つのノードのそれぞれで構成される単一のクラスターを作成します。アプリケーションで、PHP(?) Couchbase クライアントのインスタンスを作成し、少なくとも 1 つのノードへの URI を与えます。クライアントは、これらのノードのいずれかからクラスターのトポロジーについて学習します。

クライアントはクラスターへのストリーミング接続を維持し、トポロジーの変更が通知されます。ノードがダウンした場合、クライアントはそれに応じて反応します。

自動フェイルオーバーと通知をセットアップして、自動フェイルオーバー イベントを警告することができます。

于 2012-04-13T17:29:41.193 に答える