Memcached在PHP中的多个服务器上

时间:2012-10-23 07:46:09

标签: php memcached load-balancing

我对PHP中的memcached模块有以下问题:

说明:

我们正在使用该模块阻止在每时每刻有500多名用户的网站上将相同的查询发送到数据库服务器。

有时(非常罕见)memcahed进程已停用,所有活动用户都开始向数据库生成查询,因此一切都停止工作。

问题:

我知道,memcached支持多个服务器,但我想知道当其中一个服务器死机时会发生什么?是否存在某种平衡器背景或某些东西,可以告诉Ow! server 1 is dead. I'll send everything to server 2 until the server 1 goes back online.或负载是否均匀地发送给每个人?

可能的解决方案:

我需要知道这一点,因为如果它不受支持,我们的系统管理员可以将当前的memcached服务器设置为负载平衡器并平衡其他几台服务器之间的负载。

我是否应该让他手动创建负载平衡,或者默认情况下是否支持此功能?这两种方法有哪些风险?

谢谢!

1 个答案:

答案 0 :(得分:1)

您在PHP脚本中添加了多个服务器,而不是在Memcache的配置中添加。

使用Memcached::addServers()时,您可以为每台服务器指定权重。在您的情况下,您可以将一个Memcache服务器设置为高于另一个,并且仅将第二个用作故障转移。

使用Memcached::setOption(),您可以设置重试连接的频率并设置超时。如果你知道你的Memcache服务器死了很多,那么将它设置为低于默认值可能是值得的,但它不是必需的。