Repcached(故障转移似乎不起作用)

时间:2011-10-17 15:03:58

标签: php memcached

一直致力于会话的复制。我下载并安装了memcached + repcached。 现在我可以在两台服务器上运行时复制数据没有问题,我已通过telnet确认了这一点(telnet 127.0.0.1 11211)

但是,在php环境中,一旦其中一台机器出现故障,似乎确实存在问题。

我在memcache.ini中设置了memcache.allow_failover = 1。

我决定不改变php.ini。我正在使用ini_set函数来设置save_path和保存处理程序。我还在每个服务器上都有一个memcached(repcache patched)实例。当我取下server1时,我不断收到一个php警告(apache错误日志),浏览器就在那里等待它的memcached服务器重新启动,此时似乎没有将memcache存储重新路由到其他服务器。即使所有会话数据实际上都在被复制。 (有奴隶主问题吗?)

PHP警告:未知:无法写入会话数据(memcached)。请在第0行的Unknown中验证session.save_path的当前设置是否正确(127.0.0.1:11211,191.168.100.4:11211),

服务器1

$cache_servers = array(
        "127.0.0.1:11211",
        "192.168.100.3:11211"
    );
    ini_set('session.save_handler', 'memcached');
    ini_set('session.save_path', implode(',', $cache_servers));

/ usr / local / bin / memcached -u nobody -p 11211 -m 64 -x 192.168.100.4 -vv

服务器2

    $cache_servers = array(
        "127.0.0.1:11211",
        "192.168.100.4:11211",
    );
    ini_set('session.save_handler', 'memcached');
    ini_set('session.save_path', implode(',', $cache_servers));

/ usr / local / bin / memcached -u nobody -p 11211 -m 64 -x 192.168.100.3 -vv

如果我的概念错了或不管它是什么,请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:2)

您似乎正在使用memcached扩展,但更改了memcache选项。他们是不同的!

memcacheD扩展到版本2不支持故障转移。使用memcache扩展或将memcacheD升级到版本2.0(尽管它仍处于测试阶段)。