【发布时间】: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
如果我的概念有误,请帮忙。提前谢谢你。
【问题讨论】: