Назад | Перейти на главную страницу

Сервер Memcached: рекомендуется ли указывать два URL-адреса сервера на один и тот же сервер?

У меня есть система, в которой есть подключения к серверу memcache из нескольких разных файлов и серверов.

Я хотел бы остаться с одним сервером, но сохранить возможность увеличения количества серверов memcache (для периодов высокого трафика).

Моя идея состоит в том, чтобы сообщить memcache, что существует два сервера, в то время как два URL-адреса будут указывать (по DNS) на один сервер. В будущем, если я захочу, я могу добавить сервер и изменить DNS, не меняя код во многих местах.

Это хорошая практика? Есть ли снижение производительности из-за того, что есть два подключения к серверу, но они оба указывают на один и тот же сервер?

Есть ли другая идея, как добиться мгновенного расширения емкости кэша памяти без необходимости изменения кода и развертывания?

Это зависит от клиента memcached, который вы используете, и от того, как он определяет хэш-ключи на нескольких серверах. Вы не должны ожидать большей производительности, указав два сервера вместо одного, поскольку один сервер memcached будет обслуживать больше соединений, чем может обработать ваш единственный веб-сервер (скорее всего). Фактически, если клиент пытается хешировать ключи на двух разных серверах (которые на самом деле являются одними и теми же), это может принести больше вреда, чем пользы.

Если вы не хотите повторять развертывание, я бы перечислил ваши серверы в переменной ENVIRONMENT, установленной на сервере в качестве параметра конфигурации. Например, ENV ['MEMCACHE_SERVERS'] и просто настройте его на стороне сервера без повторного развертывания.

Прелесть memcache в том, что он не предназначен для дублирования или восстановления после сбоя, это не постоянное хранилище. Он может даже полностью выйти из строя, и ваш сайт просто получит 0% попадания в кеш, но, по крайней мере, он все еще работает.

Дополнительные сведения о резервировании и отказоустойчивости см. В их часто задаваемых вопросах..