0

PHPのmemcachedモジュールに関して次の質問があります。

イントロ:

このモジュールを使用して、常に500人以上のユーザーがいるサイトで同じクエリがデータベースサーバーに送信されないようにしています。

時々(非常にまれに)、memcahedプロセスが機能しなくなり、すべてのアクティブユーザーがデータベースへのクエリの生成を開始するため、すべてが機能しなくなります。

質問:

memcachedが複数のサーバーをサポートしていることは知っていますが、そのうちの1つが停止するとどうなるか知りたいですか?ある種のバランサーの背景などがありますOw! server 1 is dead. I'll send everything to server 2 until the server 1 goes back online.か?それは、負荷がそれぞれに均等に送信されていることを示していますか?

考えられる解決策:

これを知る必要があります。サポートされていない場合、システム管理者は現在のmemcachedサーバーを負荷分散サーバーとして設定し、他の複数のサーバー間で負荷を分散できるためです。

負荷分散を手動で作成するように彼に依頼する必要がありますか、それともこの機能はデフォルトでサポートされていますか?両方の方法のリスクは何ですか?

ありがとうございました!

4

1 に答える 1

1

Memcacheの構成ではなく、PHPスクリプトに複数のサーバーを追加します。

を使用するMemcached::addServers()と、サーバーごとに重みを指定できます。あなたの場合、一方のMemcacheサーバーをもう一方のサーバーよりも高く設定し、2番目のサーバーのみをフェイルオーバーとして機能させることができます。

を使用してMemcached::setOption()、接続を再試行する頻度を設定し、タイムアウトを設定できます。Memcacheサーバーが頻繁に停止することがわかっている場合は、これをデフォルトより低く設定する価値があるかもしれませんが、必須ではありません。

于 2012-10-23T08:59:37.697 に答える