Конфигурация Redisson кластера, когда набор главных серверов не работает - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть конфигурация кластера Redisson ниже в файле yaml,

subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
slaveConnectionMinimumIdleSize: 32
slaveConnectionPoolSize: 64
masterConnectionMinimumIdleSize: 32
masterConnectionPoolSize: 64
readMode: "SLAVE"
subscriptionMode: "SLAVE"
nodeAddresses:
- "redis://X.X.X.X:6379"
- "redis://Y.Y.Y.Y:6379"
- "redis://Z.Z.Z.Z:6379" 

Я понимаю, что достаточно указать один из IP-адресов главного узла в конфигурации, и Redisson автоматически идентифицирует все узлы в кластере, номои вопросы приведены ниже:

1 Все ли узлы определены при загрузке приложения и используются для будущих подключений?

2, что если один из главных узлов выйдет из строя, когда приложение запущено, запрос к конкретному мастеру завершится неудачно, и API-интерфейс redisson автоматически попытается связаться с другими узлами (мастером) или он попытается повторно подключиться к одному и тому же главному узлу и потерпит неудачу?

3 Это лучший способ датьDNS вместо ip сервера?

1 Ответ

0 голосов
/ 28 декабря 2018

Отвечая на ваши вопросы:

  1. Это верно, все узлы идентифицируются в процессе загрузки.Если вы используете Config.readMode = MASTER_SLAVE or SLAVE (which is default), то будут использоваться все узлы.Если вы используете Config.readMode = MASTER, то используется только главный узел.

  2. Redisson пытается достичь главного узла до момента обновления топологии Redis.До этого момента у него не было информации о выбранном новом главном узле.

  3. Облачные сервисы, такие как AWS Elasticache и Azure Cache, предоставляют одно имя хоста, ограниченное несколькими IP-адресами.

...