Взаимодействие клиента с Redis Cluster - PullRequest
0 голосов
/ 22 марта 2019

Я начал изучать Redis Cluster и его клиент C (hiredis).Мне не удалось найти много информации о взаимодействии клиента с кластером Redis.У меня есть несколько запросов на этот счет:

  • Устанавливает ли клиент соединение со всеми узлами кластера (главным и подчиненным) в начале?

  • Существует ли какой-либо узел-координатор, который передает запрос клиента правильному узлу?

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

  • Какие конкретные параметры подключения клиент-кластер можно настроить?

1 Ответ

1 голос
/ 28 марта 2019

Устанавливает ли клиент соединение со всеми узлами?

Да, клиент поддерживает соединение как минимум со всеми мастерами.

Есть ли узел-координатор, который передает запрос клиента на правильный узел?

Нет, его нет.По своему дизайну кластер redis не имеет прокси.(Помимо этого: ходят разговоры о разработке прокси-решения для Redis, но я не ожидаю, что оно будет выпущено в ближайшее время.)

Периодически ли клиент получает информацию о хэшепривязки к слотам?

Когда клиент запускается, он создает кэш отображений хеш-слотов.Затем, во время выполнения, если слот будет перенесен на другой мастер, кластер redis выдаст конкретную ошибку, которая сообщит клиенту нового владельца этого слота.Затем ожидается, что клиент кеширует нового владельца и повторяет запрос к новому узлу.

В результате такой конструкции клиенты обычно имеют очень хороший кэш каждого слота и его владельца, и естьочень мало накладных расходов.

какие параметры подключения клиента настраиваются?

Наиболее важным параметром является список узлов сервера для подключения к кластеру.Вам не нужно указывать все узлы - клиент может автоматически обнаружить все мастера.Пока активен хотя бы один узел, клиент обнаружит все остальные узлы.

Кроме того, у вас есть параметры тайм-аута подключения, параметры для управления TLS.

...