2015-08-30 2 views
2

Я интегрировал redis в мое весеннее веб-приложение с помощью jedis (redis поддерживает от AWS Elastic cache). Он отлично работает с одиночным узлом для записи и чтения с одного завода соединения jedis.awis Redis кластер из пружины с помощью jedis client

Теперь мне нужно расширить его до кластера для записи в первичный узел и чтения из вторичных узлов. i.e Если один идет вниз, то репликация происходит автоматически с помощью AWS, в этом случае имя хоста, с которым я буду подключаться, будет изменено.

Как можно прочитать новый узел, который попал в картину?

Как я могу подключиться к этому из весеннего контейнера (я имею в виду XML-файл)?

, пожалуйста, у каждого есть полезные предложения, чтобы достичь вышеуказанного сценария.

Я буду признателен за любые ссылки или код, который может быть полезен для решения вышеуказанной проблемы.

На данный момент, я использую одну фабрику связи с шаблоном jedis и redis для манипуляций.

+0

Привет, вы можете поделиться код в весеннем загрузки делает это?Для меня все еще есть отказ на AWS redis – user2670818

ответ

0

Когда какой-либо узел опускается, все происходит без вмешательства со стороны. Вам также не нужно писать код для этого отказа. Все, что вам нужно сделать, это использовать DNS-имя вашего кластера Redis Elasticache, а не его IP-адрес.
Например, скажем, у вас есть 1 мастер и 2 подчиненных устройства. Когда мастер переходит вниз, новое подчиненное устройство будет автоматически выбираться мастером, и AWS изменит DNS мастера, чтобы указать на подчиненный IP-адрес, который стал новым мастером. И он также будет вращать новый подчиненный, заменяя один, преобразованный в master, и обновляет запись DNS подчиненного устройства, чтобы указать на новый IP-адрес. Поэтому вам не нужно ни о чем беспокоиться, потому что имена хостов остаются неизменными, только измененные IP-адреса будут меняться. Здесь вы можете найти более подробную информацию о том, что происходит за капотом: Auto Failover for Amazon ElastiCache for Redis

+0

привет спасибо за ваш быстрый ответ, так что теперь, как я могу подключить aws-кластер, потому что у меня есть несколько конечных точек, теперь я пошел на несколько фабрик соединений, это хорошо или любой другой способ подключения кластера – Balaji

+0

You может подключаться только к главной конечной точке, поэтому он получит все запросы на чтение и запись. Если вы хотите использовать ведомые для запросов на чтение, я думаю, вам нужно использовать jedis pool с несколькими строками подключения: https://github.com/xetorthio/jedis/wiki/Getting-started –

+0

привет, вы можете объяснить мне, как это сделать в конфигурации Spring jedis pool с несколькими конечными точками (AWS), а также с любым круглым robbin с несколькими соединениями. – Balaji

3

Вам не нужно ничего делать на вашей стороне, AWS ElastiCache будет обрабатывать переход на другой ресурс.

У вас есть кластер redis с двумя узлами, Primary и Replica. Если что-то происходит с Первичным узлом, происходит автоматический переход на другой ресурс узла Replica. Отказоустойчивый происходит на группы репликации уровне узла DNS

Это очень важно, чтобы ваше приложение подключается к репликации группы узла, а не основной узел URL/IP непосредственно

Вы можете найти репликацию группа конечных точек в ElastiCache -> Группы репликации -> (выберите группу репликации) и в нижней части есть Узел Группа детали Первичная конечная точка пример myReplicationGroup.8asdas.ng.0001.use1.cache.amazonaws.com:6379

В случае отказа при сбое есть немного времени простоя. По моему опыту это менее 1 минуты.

После неисправного узла возвращается, он может стал Вторичный узел и оставаться таким, если у вас включена функция Multi-AZ

Смежные вопросы