当前位置: 首页 > 知识库问答 >
问题:

AWS Redis集群从Spring使用jedis客户端

尹钱青
2023-03-14

我已经使用jedis将redis集成到我的spring web应用程序中(redis支持AWS弹性缓存)。在单节点上,它可以很好地使用单绝地连接工厂进行读写。

我现在需要将它扩展到一个集群,以便写入主节点并从次节点读取。也就是说,如果一个下降,那么复制将由AWS自动发生,在这种情况下,我将连接的主机名将被更改。

如何读取进入图片的新节点?

我如何从spring容器(我指的是XML文件)连接到它?

请,任何人有有用的建议,以实现上述情况。

我将感谢任何可能有助于克服上述问题的链接或代码。

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

共有2个答案

杭永安
2023-03-14

当任何节点发生故障时,一切都在发生,而不需要您的任何干预。您也不需要为此故障转移编写任何代码。你需要做的就是使用Redis Elasticache集群的DNS名称,而不是它的IP<例如,假设您有一个主设备和两个从设备。当主设备停机时,将自动选择一个新的从设备作为主设备,AWS将更改主设备的DNS以指向成为新主设备的从设备IP。它还将旋转一个新的从机,替换转换为主机的从机,并更新从机的DNS记录,以指向新的IP地址。所以你不必担心任何事情,因为主机名保持不变,只有它们后面的IP会改变。在这里,你可以找到更多关于幕后发生的事情的细节:Amazon ElastiCache for Redis的自动故障切换

方绪
2023-03-14

您不必在您这边做任何事情,AWS弹性缓存将处理故障转移。

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

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

可以在ElastiCache中找到复制组终结点-

在故障切换的情况下,会有一些停机时间。根据我的经验,这不到一分钟。

故障节点返回后,如果启用了多个AZ,它可能会成为辅助节点并保持这种状态

 类似资料:
  • 我有一个项目连接到独立的redis,客户端创建为: 用于绝地武士和spring data redis的库版本为: 现在我需要移动到集群redis,并将客户端创建更改为 通过此代码更改,我在群集中找不到可访问的节点,如下所示: } 由于spark-2.1.3中运行了spark应用程序,由于版本依赖性,我需要使用相同的spring data redis。如果没有jedis和spring data re

  • 由于单个redis实例不符合我的要求,我选择了redis cluster。我用三个节点组成集群,并将数据填充到集群中。当我使用JedisCluster从集群获取数据时,它比单个实例花费更多的时间。那么,将绝地与redis星系团连接起来的正确方式是什么呢。我如何利用连接池将绝地与redis集群连接起来?

  • 我在3台机器上创建了3个artemis主代理。每个主节点都有一个运行在同一机器上的从节点。JGroup用于此集群。现在我只想要一个主动服务器和剩下的2个被动服务器。当我连接到集群时,似乎负载平衡器将我的请求发送到其中一个服务器(可能是基于循环的?)。 在客户端,我为发送方和接收方都这样做了。 我想要一个服务器处理所有的请求和其他2在待机。或者发送者使用一个连接/会话发送消息,而接收者也使用一行来读

  • 我正在尝试使用apache-spark读取和写入Ignite集群,我可以使用JDBC瘦客户机,但不是本机方法,正如几个spark+Ignite示例中提到的那样。 现在,所有的spark+ignite示例都启动了一个本地ignite集群,但我希望我的代码作为客户端连接到已经存在的集群。 完整代码:-(sparkDSLExample)函数无法使用thin连接ignite远程群集 示例-default.

  • 我在Kafka的spring云总线上配置了一个spring云配置服务器。我正在使用Edgware。随boot 1.5.9一起发布。当我向endpoint/总线/刷新发送POST请求时,destination=clientId:dev:*在主体中通过POSTMAN to config server,所有客户端都会刷新其bean,即使其clientId与destination字段中的值不匹配。 以下是

  • 我已经使用KOPS安装了kubernetes集群。 从kops安装kubectl的节点开始,kubectl全部工作完美(假设节点A)。 我正在尝试从另一个安装了kubectl的服务器(节点B)连接到kubernetes集群。我已经将~/.kube从A节点复制到B节点,但当我尝试执行以下基本命令时: 我的配置文件是: 感谢任何帮助