Использование Spring @EnableRedisHttpSession с конфигурацией master-slave

У меня есть приложение на основе Spring Cloud с несколькими внутренними серверами Spring-Boot. Все серверы делятся своим сеансом с одним сервером Redis через @EnableRedisHttpSession.

Теперь у меня есть потребность в отказоустойчивой поддержке Redis в производственной среде, а это значит, что мне придется настроить конфигурацию ведущий-подчиненный (наверное...).

Как мне настроить репликацию сеанса Http через Redis, чтобы знать о двух серверах? Я не смог найти никакой документации по этому поводу. Обратите внимание, что здесь я не использую Spring Data Redis, а только поддержку Spring Session для Redis.


person odedia    schedule 17.01.2016    source источник


Ответы (1)


Spring Session Redis использует Spring Data Redis для интеграции с Redis, поэтому вы можете использовать Redis Sentinel (см. http://redis.io/topics/sentinel). Чтобы дать вам полную картину:

Redis допускает управляемые (Redis Sentinel) и неуправляемые настройки Master-Slave. Неуправляемые установки не обеспечивают отработки отказа, в то время как управляемые установки Sentinel обеспечивают отработку отказа главного узла, когда он выходит из строя. Redis Sentinel отслеживает все узлы master/slave, и если мастер недоступен, подчиненный будет повышен до нового мастера.

Вы можете настроить Spring Data Redis для использования Sentinel со следующими свойствами:

  • spring.redis.sentinel.master: имя главного узла.
  • spring.redis.sentinel.nodes: Список пар хост:порт, разделенный запятыми.

или вы предоставляете собственный компонент RedisConnectionFactory. См. Документы Spring Data Redis для получения дополнительной информации.

ХТХ, Марк

person mp911de    schedule 17.01.2016
comment
Большое спасибо, я посмотрю на это. Так что, чтобы было ясно, никаких изменений в коде не требуется? Просто обновить эти два свойства в aplication.properties или application.yml? - person odedia; 18.01.2016
comment
Правильно, изменение кода не требуется (Примечание: Redis Sentinel поддерживается, начиная с Spring Data Redis 1.4+) - person mp911de; 18.01.2016
comment
Я добавил информацию к первому вопросу с моими проблемами, был бы признателен, если бы вы могли взглянуть и, возможно, посоветовать решение... Спасибо! - person odedia; 28.02.2016
comment
Спасибо, я открыл следующий вопрос: stackoverflow. ком/вопросы/35686670/ - person odedia; 28.02.2016