Redis Sentinel с чтением из подчиненных записывает в мастер

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

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

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

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

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


person ptha    schedule 30.05.2016    source источник


Ответы (1)


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

person Peng Yang    schedule 07.02.2018