2015-08-30 66 views
2

我使用jedis(redis支持AWS Elastic缓存)将Redis集成到我的spring web应用程序。单节点可以使用单个jedis连接工厂编写和读取。aws从spring使用jedis客户端的redis集群

我现在需要将它扩展到集群,以便写入主节点并从辅助节点读取。也就是说,如果出现故障,则复制将由AWS自动进行,在这种情况下,我将连接的主机名将会更改。

如何读取出现在图片中的新节点?

我怎样才能连接到这个从春季容器(我的意思是XML文件)?

请任何人提出有用的建议,以达到以上场景。

我将不胜感激任何链接或代码,可能有助于超过上述问题。

截至目前,我正在使用一个连接工厂,使用jedis和redis模板进行操作。

+0

嗨,你可以分享在春季启动这样的代码?对我来说,仍然连接拒绝在AWS的Redis – user2670818

回答

0

当任何节点发生故障时,一切都在发生,没有任何来自您身边的干预。您也不需要为此故障转移编写任何代码。您只需使用Redis Elasticache群集的DNS名称,而不是IP。
例如,假设您有1个主站和2个从站。当主站关闭时,一个新的从站将被自动选为主站,AWS会将主站的DNS更改为指向成为新主站的从站IP。它还会启动一个新的从站,替换转换为主站的新从站,并更新从站的DNS记录以指向新的IP地址。所以你不需要担心任何事情,因为主机名保持不变,只有它们后面的IP会改变。在这里,您可以找到更多有关发动机罩背后发生的事情的详细信息:Auto Failover for Amazon ElastiCache for Redis

+0

嗨感谢您的快速回复,所以现在我怎么可以连接Aws集群,因为我有多个端点现在我去多个连接工厂是TI好或任何其他方式来连接集群 – Balaji

+0

你只能连接到主端点,所以它会得到所有的读写请求。如果你想也使用奴隶读取请求我认为你需要使用多个连接字符串的jedis池:https://github.com/xetorthio/jedis/wiki/Getting-started –

+0

嗨,你能解释我怎么做在多个端点(AWS)的Spring jedis池配置中,或者具有多个连接的任何循环robbin。 – Balaji

3

您不必为此做任何事情,AWS ElastiCache将处理故障转移。

您有一个包含两个节点(主节点和副本节点)的redis群集。如果主节点发生故障,则会自动故障切换到副本节点。 故障转移发生在复制组节点的DNS级别

直接

您可以复制它是你的应用程序连接到复制组节点而不是主节点的URL/IP很重要组端点 ElastiCache - >复制组 - >(选择复制组),并在底部有 节点组详细 主要终点 例如myReplicationGroup.8asdas.ng.0001.use1.cache.amazonaws.com:6379

在故障转移的情况下会有一点停机。根据我的经验,这不到1分钟。

出现故障的节点后回来,它可能成为第二个节点,并留样,如果你有多重AZ启用