2015-09-01 8 views
0

У меня встроенный twemproxy в веб-слой, и у меня есть 6 Elasticache (1 мастер, 5 прочитанных реплик) У меня возникает проблема, что все реплики имеют одинаковые ключи, все одинаково, но кеш-хиты на одной реплике больше, чем другие, и я выполнил несколько нагрузочных тестов, все еще на каждом тесте, я получаю такой же результат. У меня есть отдельный движок данных, который записывает на хозяина этого кластера, и оставшиеся 5 реплик синхронизируются с ним. Поэтому я использую twemproxy только для чтения данных из Elasticache, а не для целей sharding. Таким образом, мой простой вопрос: почему я получаю 90% запросов на однократные реплики Elasticache, он должен равномерно распределять хиты среди всех прочитанных реплик? правильно?Нечетный кеш хитов

Спасибо заранее

ответ

0

Twemproxy хешей все, как я помню. Это означает, что он попытается разделить ключи между мастерами, которых вы им даете. Если у вас есть один мастер, это означает, что он хэширует все на один сервер. Таким образом, насколько это возможно, у вас есть один сервер для приемлемых запросов. Таким образом, это не поможет вам в этом случае.

Если вы хотите иметь одну конечную точку для распространения считывания через банк с идентичными подчиненными устройствами, вам нужно будет установить балансировщик нагрузки TCP перед ведомыми устройствами и попросить приложение обратиться к порту IP: , Обычными параметрами являются Nginx и HAProxy для программных приложений, на AWS вы можете использовать свой балансировщик нагрузки, но вы можете использовать различные ограничения ресурсов вне своего контроля там, и в значительной степени любой аппаратный балансировщик нагрузки будет работать (хотя это сложно, если не исключено на AWS).

Какой балансировщик нагрузки использовать, зависит от уровня комфорта и уровня знаний (или вашего персонала) с каждым вариантом.

+0

Но, как я уже говорил, мы не используем Twemproxy для хеширования, мы просто используем его для чтения. – Rohit

+0

Twemproxy всегда хеширует, вот что он сделал. Если вы не изменили исходный код самостоятельно. С одним приемлемым сервером все ключи будут хешировать в один слот, который у него есть. Итак, один сервер. Или у вас горячий осколок. Или оба. В любом случае, хотите ли вы этого или нет, Twemproxy передает данные. –