使用jedis客户端从春季发布AWS Redis群集

Bal*_*aji 3 redis jedis amazon-elasticache spring-data-redis

我已使用jedis将redis集成到我的spring Web应用程序中(AWS Elastic缓存支持redis)。使用单个jedis连接工厂对单个节点进行写入和读取工作正常。

现在,我需要将其扩展到群集以写入主节点并从辅助节点读取。即,如果其中一个出现故障,则AWS会自动进行复制,在这种情况下,我将与之连接的主机名将被更改。

如何读取出现的新节点?

如何从Spring容器(我的意思是XML文件)连接到此?

请提出任何有益的建议,以实现上述方案。

我将不胜感激任何克服上述问题的链接或代码。

到目前为止,我正在使用一个带有jedis和redis模板的连接工厂来进行操作。

mae*_*tr0 5

您无需做任何事情,AWS ElastiCache将处理故障转移。

您有一个Redis集群,其中有两个节点,即Primary和Replica。如果主节点发生故障,将自动故障转移到副本节点。故障转移发生在复制组节点DNS级别

应用程序连接到复制组节点而不是直接连接到主节点url / ip是非常重要的

您可以在ElastiCache->复制组->(选择复制组)中找到复制组端点。在底部,有“节点组详细信息”主端点示例myReplicationGroup.8asdas.ng.0001.use1.cache.amazonaws.com:6379

如果发生故障转移,则会有一些停机时间。根据我的经验,不到1分钟。

故障节点恢复后,如果启用了多可用区,它可能会成为辅助节点并保持原状


Liv*_*tea 1

当任何节点出现故障时,一切都会发生,无需您的任何干预。您也不需要为此故障转移编写任何代码。您所要做的就是使用 Redis Elasticache 集群的 DNS 名称,而不是其 IP。
例如,假设您有 1 个主设备和 2 个从设备。当主服务器宕机时,新的从服务器将自动被选举为主服务器,并且AWS将更改主服务器的DNS以指向成为新主服务器的从服务器IP。它还将旋转一个新的从属设备,替换转换为主设备的从属设备,并更新从属设备的 DNS 记录以指向新的 IP 地址。所以你不需要担心任何事情,因为主机名保持不变,只有它们背后的IP会改变。您可以在此处找到有关幕后情况的更多详细信息:Amazon ElastiCache for Redis 的自动故障转移