1

我在 yaml 文件中有 Redisson 集群配置,

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 如果一个主节点出现故障,当应用程序运行时,对特定主节点的请求将失败,redisson api会自动尝试联系其他节点(主节点)还是尝试重复连接到同一个主节点,失败?

3 提供DNS而不是服务器IP是最佳做法吗?

4

1 回答 1

0

回答您的问题:

  1. 没错,所有节点都是在启动过程中识别出来的。如果您使用Config.readMode = MASTER_SLAVE or SLAVE (which is default),则将使用所有节点。如果您使用Config.readMode = MASTER,则仅使用主节点。

  2. Redisson 尝试到达主节点,直到 Redis 拓扑更新。Till that moment it doesn't have information about elected new master node.

  3. AWS Elasticache 和 Azure Cache 等云服务提供绑定到多个 IP 地址的单个主机名。

于 2018-12-28T17:10:53.857 回答