使用Redisson连接AWS非集群Redis:节点地址配置与主节点切换问题
关于Redisson连接AWS ElastiCache主从Redis的配置问题
问题背景
你尝试用Redisson连接AWS ElastiCache的非集群Redis,该实例提供两个端点:
- 主端点:
master.redis-name-uswest2.nnnnnn.usw2.cache.amazonaws.com:6379 - 只读端点:
replica.redis-name-uswest2.nnnnnn.usw2.cache.amazonaws.com:6379
你想确认是否需要按以下代码配置两个端点:
public class Application { public static void main( String[] args ) { // AWS Elasticache Replicated config Config config = new Config(); config.useReplicatedServers() .addNodeAddress("rediss://master.redis-name-uswest2.nnnnnn.usw2.cache.amazonaws.com:6379") .addNodeAddress("rediss://replica.redis-name-uswest2.nnnnnn.usw2.cache.amazonaws.com:6379"); } }
同时想知道:按此配置后,Redisson是否会在主节点重新分配时自动追踪新的主节点?
回答
1. 是否需要配置两个端点?
需要,且这种配置方式是可行的,不过也有更灵活的选项。
Redisson的useReplicatedServers()模式支持自动发现主从节点,你可以只配置主端点,Redisson会通过该节点自动探测所有副本节点;但同时配置主、只读端点能让Redisson初始化时更快获取完整的节点列表,两种方式都能正常工作。
另外要注意:AWS ElastiCache的主端点是DNS别名,会自动指向当前的活跃主节点,副本端点同理,这一特性可以和Redisson的机制形成互补。
2. 主节点重新分配时是否会自动追踪?
是的,Redisson会自动追踪主节点的变化。
当使用useReplicatedServers()模式时,Redisson会定期通过INFO replication命令检查节点的主从状态。如果原主节点故障,AWS ElastiCache会自动将副本提升为主节点,同时主端点的DNS会更新指向新主节点。Redisson在下次状态检查时会识别到主节点变化,自动切换到新主节点处理写请求,读请求依然会分发到副本节点(若开启读负载均衡)。
建议使用较新版本的Redisson,旧版本可能存在DNS解析缓存问题,导致无法及时获取新主节点的IP,遇到切换异常时可以优先考虑升级版本。
内容的提问来源于stack exchange,提问作者jdtommy
相关产品推荐
相关产品推荐

