Repcached (аварийное переключение не работает) - PullRequest
2 голосов
/ 17 октября 2011

Работал над репликацией сессий. я скачал и установил 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

Если у меня неправильная концепция или что-то еще, пожалуйста, помогите. Заранее спасибо.

1 Ответ

2 голосов
/ 09 ноября 2011

Кажется, вы используете расширение memcached, но меняете параметры memcache. Они разные!

Расширение memcacheD до версии 2 не поддерживает отработку отказа. Либо используйте расширение memcache, либо обновите memcacheD до версии 2.0 (хотя она все еще находится в бета-версии).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...