![Сервер Memcached: является ли хорошей практикой указывать два URL-адреса сервера на один и тот же сервер?](https://rvso.com/image/567607/%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80%20Memcached%3A%20%D1%8F%D0%B2%D0%BB%D1%8F%D0%B5%D1%82%D1%81%D1%8F%20%D0%BB%D0%B8%20%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B5%D0%B9%20%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%BE%D0%B9%20%D1%83%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B4%D0%B2%D0%B0%20URL-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%20%D0%BD%D0%B0%20%D0%BE%D0%B4%D0%B8%D0%BD%20%D0%B8%20%D1%82%D0%BE%D1%82%20%D0%B6%D0%B5%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%3F.png)
У меня есть система, в которой к серверу Memcache подключены несколько разных файлов и серверов.
Я хотел бы остаться с одним сервером, но сохранить возможность увеличения количества серверов Memcache (в периоды высокого трафика).
Моя идея — сказать memcache, что есть два сервера, в то время как два URL будут указывать (по DNS) на один сервер. В будущем, если я захочу, я смогу добавить сервер и изменить DNS, не меняя код во многих местах.
Является ли это хорошей практикой? Снижается ли производительность из-за того, что есть два серверных соединения, но они оба указывают на один и тот же сервер?
Есть ли еще идеи, как добиться мгновенного расширения емкости кэша памяти без необходимости изменения кода и развертывания?
решение1
Это зависит от используемого вами клиента memcached и того, как он определяет хэширование ключей на нескольких серверах. Не стоит ожидать большей производительности, указав два сервера вместо одного, поскольку один сервер memcached будет обслуживать больше соединений, чем может обработать ваш один веб-сервер (скорее всего). Фактически, попытка клиента хэшировать ключи на двух разных серверах (которые на самом деле одинаковы) может принести больше вреда, чем пользы.
Если вы не хотите снова развертывать, то я бы перечислил ваши серверы в переменной ENVIRONMENT, которая вытягивается на сервер как опция конфигурации. Например, ENV['MEMCACHE_SERVERS'] и просто настройте его на стороне сервера без повторного развертывания.
Прелесть memcache в том, что он не предназначен для избыточности или отказоустойчивости, это не хранилище постоянного хранения. Он даже может полностью выйти из строя, и ваш сайт просто будет иметь кэш-попадание 0%, но, по крайней мере, он все еще будет функционировать.
Подробнее об избыточности и отказоустойчивости читайте в разделе часто задаваемых вопросов..