0

开始学习 RedisLabs Enterprise Cluster,但我对如何使用 RLEC 实现高可用性感到困惑。我了解 RLEC 使用专有复制,这与开源 Redis 不同。我想要实现的是,如果我的主数据库出现故障,我的应用程序仍然可以通过连接到副本数据库来正常运行。

我的问题是:

  1. 我已经创建了 2 个节点。如果我在启用复制的情况下创建了一个名为 testing 的新 Redis 数据库,哪个节点是主数据库(哪个是从属数据库)?当前主节点是否由端点指示?

节点 在此处输入图像描述

  1. 我连接到每台服务器中的 localhost:19332 (如端点所示)。为什么我可以从两台服务器上进行设置?(并且它出现在两个服务器中)。我认为通常复制应该是从主到从的一种方式?

在此处输入图像描述

4

2 回答 2

2

我了解 RLEC 使用专有复制,这与开源 Redis 不同。

这是不正确的——RLEC 中的复制与开源的复制是相同的,只是集群是不同的和专有的。

我想要实现的是,如果我的主数据库出现故障,我的应用程序仍然可以通过连接到副本数据库来正常运行。

对于启用复制的数据库,RLEC 透明地为您管理故障转移——您需要做的就是连接到提供的端点。如果主节点发生故障,系统会自动故障转移到副本,您的应用程序需要做的就是在断开连接的情况下重试连接到同一端点。端点永远不会改变并且总是指向当前的主节点。

  1. 此信息可在“分片”视图中或rladmin通过status命令获得。无论如何,端点的位置并不代表主节点的位置——端点是一个代理,它将您的客户端连接到主节点。

  2. 这就是标准 Redis 复制的工作原理。在 Redis 中,复制是一种方式,从主到从。然而,slave 可以被写入,但是任何写入它们的东西都不会进入上游,并且可能被来自 master 的数据覆盖。无论如何,始终使用端点连接到您的数据库,并且永远不要在本地连接到分片 - 这可能会导致意外结果。

于 2016-11-23T10:02:26.963 回答
2

我会给你一些高水平的指导,如果你想了解更多信息,请通过 support@redislabs.com 联系我们

对于真正的 HA,您的 RLEC 集群应该至少有 3 个节点,因此您应该在集群中添加另一个节点。创建 Redis 资源后,只需启用复制即可将其配置为 HA。

您只需将您的应用程序连接到 UI 中提供的端点。如果具有主 Redis 的节点出现故障,RLEC 将自动提升从属并将您的应用程序请求重定向到新的主节点。

请注意,您确实需要配置 DNS,并且您的集群名称必须是 FQDN。

关于redis-cli -p 19332从两个节点本地工作的问题,正如我的同事@ItamarHaber 所提到的,您正在通过代理与 Redis 资源通信,所有请求都由您的主 Redis 进程提供服务。

于 2016-11-23T11:28:58.960 回答