Redis Sentinel с прочитанным из Рабов, написать Мастеру

Наша текущая настройка Redis - это клиент веб-приложения, использующий Jedis для прямого подключения с использованием одного JedisPool для записи на один мастер Redis и второго JedisPool для чтения с одного подчиненного устройства Redis. Раб настроен для репликации мастера.

Мы находимся в процессе перехода к использованию JedisSentinelPool на клиенте и представлению Sentinel (ов) для более чистой обработки аварийного переключения. Насколько я знаю, кажется, что JedisSentinelPool связывается только с выбранным в данный момент мастером, поэтому теперь все операции записи / чтения переходят к мастеру. По сравнению с предыдущим, когда показания могли быть распределены на подчиненное устройство.

Есть ли способ использовать JedisSentinelPool для распределения чтений на ведомое устройство в целях балансировки нагрузки? Или необходимо реализовать это вручную с помощью JedisPool (как раньше). В этом случае, если мастер потерпел неудачу, JedisSentinelPool теперь будет указывать на старого ведомого (нового мастера), а JedisPool все равно будет тупо указывать на старого ведомого, и эффективно старый раб (новый хозяин) теперь будет обрабатывать операции чтения и записи?

Имеет ли Redis Sentinel (или иным образом) возможности балансировки нагрузки (в отличие от аварийного переключения)? В настоящее время у нас есть только один ведомый, можно ли добавить дополнительные ведомые устройства для балансировки нагрузки? И если да, каковы рекомендуемые конфигурации?

Любой совет, реальный опыт здесь будет оценен.

1 ответ

Я пишу новый JedisSentinelPool, могу читать с ведомого с балансировкой нагрузки, пишу с главного, он использует редис, подписывают ведомых, я использую его в своем веб-приложении, см. Код https://github.com/NormanGyllenhaal/sentinel-slave-jedis-pool

Другие вопросы по тегам