【问题标题】:Repcached (failover doesn't seem to work)Repcached(故障转移似乎不起作用)
【发布时间】:2011-12-09 09:20:42
【问题描述】:

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

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

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

我决定不更改 php.ini。我正在使用 ini_set 函数来设置 save_path 和保存处理程序。我还在每台服务器上都有一个 memcached 实例(repcache 已修补)。当我关闭 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

如果我的概念有误,请帮忙。提前谢谢你。

【问题讨论】:

    标签: php memcached


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-29
      • 2014-01-21
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      相关资源
      最近更新 更多