У нас настроено 2 сервера memcached и используется клиент Eniym. Когда один из серверов не работает, кажется, что этот сервер добавлен в список deadServers (ServerPool.cs) и пытается воскресить сервер каждые 10 секунд (мы настроили deadTimeOut равным 10 секундам). Попытка подключиться к вышедшему из строя серверу вызывает тайм-аут TCP, загрузка страниц занимает много времени, что приводит к неудовлетворительному взаимодействию с пользователем.
1) Каков стандартный способ решения этой проблемы? Есть несколько сообщений об удалении сервера из списка deadServers. Это нормально?
2) Какова рекомендуемая настройка deadTimeOut (я понимаю, что по умолчанию это 2 минуты, и в нашей реализации мы изменили его на 10 секунд)
3) Правильно ли я понимаю, что кэшированные данные не реплицируются между Сервером 1 и Сервером 2? Если Сервер 1 не работает, он обращается к базе данных для получения этих значений (и на самом деле не проверяет Сервер 2)?
Любая помощь очень ценится.
Ваша оценка в основном верна. Я не могу говорить за вашего клиента, но отказавший сервер не должен влиять на вашу нормальную работу.
Другими словами, вам не нужна отработка отказа, репликация и т. Д. Вы просто хотите, чтобы ваш клиент вел себя правильно при возникновении сбоя.