集群模式下的自动故障转移处理已禁用 Redis ElastiCache

Auto failover handling in cluster mode disabled Redis ElastiCache

我想从节点端点的角度了解故障转移案例https://forums.aws.amazon.com/,案例的 IP 地址

  1. 主节点故障转移和副本得到提升
  2. 副本故障转移

配置为禁用集群模式:只有 1 个分片(1 个主节点和 2 个副本)启用了多 AZ。 例如-

PRIMARY ENDPOINT - xxx.dktrm8.ng.0001.usw2.cache.amazonaws.com
READER ENDPOINT - xxx-ro.dktrm8.ng.0001.usw2.cache.amazonaws.com
NODE ENDPOINTS - {
xxx-a.dktrm8.0001.usw2.cache.amazonaws.com -> master,
xxx-b.dktrm8.0001.usw2.cache.amazonaws.com -> replica,
xxx-c.dktrm8.0001.usw2.cache.amazonaws.com -> replica
}

问题 -

  1. 节点端点是 DNS 名称吗?
  2. 是否已在 IP 地址级别或节点端点级别处理故障转移?
  3. 故障转移后主端点可以指向不同的节点端点(提升的主节点)还是仅更改 IP 地址映射?
  4. 如果使用节点端点而不是 reader 端点来读取流量,节点端点的角色是否有可能更改为 'MASTER' ?在故障转移或维护的情况下。

从技术上讲,每个问题都应该是它自己的 post(参见:How to Ask Great Questions),但由于这些都是非常相关的,所以我认为没关系。

首先,是的,这些是将获得 A 查询答案的 DNS 名称,master/replica GSLB 也是如此(我不认为它们真的是 GSLB,与您在同一上下文中用于 web 应用程序,但它们确保主节点始终位于主端点,副本始终位于副本端点之后)。

其次,由于实际的节点名称(而不是伪 GSLB 的)解析为 IP 地址,因此使用哪个并不重要。

故障转移后,master/primary 和副本 GSLB 端点都将更新。 master/primary 端点将指向提升为主节点的副本。副本端点将暂时只包含一个副本,即未提升的副本。一旦原始 master/primary 端点重新联机,它将被重新配置为副本,然后添加到副本 GSLB 端点。这是假设总共有 3 个节点。如果有更多,副本端点将少一个节点,直到原始主节点重新联机。

最后,是的,您应该始终使用 GSLB 端点,因为它们始终包含最新的主节点和副本。如果您直接连接到节点,您 运行 有尝试写入成为副本的主节点、成为主节点的副本或刚刚离线的节点的风险。除非所有三个(或更多,如果使用更多节点)都处于离线状态,否则主端点和副本端点将始终指向正确的位置。