Работал над репликацией сессий. я скачал и установил memcached + repcached.
Теперь у меня нет проблем с репликацией данных между двумя серверами, пока они оба работают, и я подтвердил это через telnet (telnet 127.0.0.1 11211)
Тем не менее, когда в среде php возникает проблема, когда одна из машин выходит из строя.
У меня установлена memcache.allow_failover = 1 в memcache.ini.
Я решил не менять php.ini. я использую функцию ini_set для установки save_path и обработчика сохранения. У меня также есть экземпляр memcached (repcache patched) на каждом из серверов. Когда я отключаю server1, я продолжаю получать предупреждение php (журнал ошибок apache), и браузер сидит там, ожидая, пока его сервер memcached вернется, и в этот момент кажется, что он не перенаправляет хранилище memcache на другой сервер. , даже если все данные сеанса на самом деле реплицируются. (есть ли проблема главного раба?)
Предупреждение PHP: Неизвестно: не удалось записать данные сеанса (memcached). Убедитесь, что текущий параметр session.save_path правильный (127.0.0.1:11211,191.168.100.4:11211) в поле Неизвестно в строке 0,
Сервер 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
Если у меня неправильная концепция или что-то еще, пожалуйста, помогите. Заранее спасибо.