无副本的 ElastiCache 多 AZ 设置

0

【以下的问题经过翻译处理】 我的客户正在将 Redis 迁移到 ElastiCache。他们不要求集群具有高可用性,因此为了节省成本,希望使用单个数据副本运行。由于写入负载较高,可能需要多个分片,即启用集群模式的集群,这就需要启用多 Az。

与 RDS 不同的是,ElastiCache 中的 multi-AZ 使用一个常规读取副本进行故障切换,而不是为故障切换场景保留一个特殊副本。我发现我可以将一个群集作为多 AZ 运行,但读取副本数量为 0,因此它只有主节点。在这样的设置中,启用 multi-AZ 似乎毫无意义,因为一旦主节点发生故障,就无处可逃。 除了启用群集模式设置需要多 AZ 之外,运行不带副本的群集有什么好处吗? 另外,如果单个写入器的集群就能满足该客户的需求,那么以启用集群模式、1 个分片和 0 个副本的方式运行集群,与以单节点集群的方式运行集群相比,可能会有这样的好处:如果工作负载随时间发生变化,可以轻松添加更多节点和分片。在这种情况下,运行单节点群集是否有性能等方面的优势?

profile picture
专家
已提问 1 年前78 查看次数
1 回答
0

【以下的回答经过翻译处理】 除非有特定要求使用cluster-mode-disabled,我们建议客户从cluster-mode-enabled开始,因为他们可以:

  • 水平增量扩展
  • 减少单个主节点(分片)故障的影响范围
  • 和cluster-mode-disabled一样可以垂直扩展

即使意图仅运行一个单写/主节点而不使用副本,选择cluster-mode-disabled也没有性能上的优势。

不过,以下是一些客户可能会选择cluster-mode-disabled的原因及例子:

  • Redis发布/订阅的用例会生成大量流量,因为每个消息都要复制到每个主节点(然后再复制到每个主节点的副本节点)。
  • 如果客户优选的客户端库不支持cluster mode
  • 如果所需的第三方应用程序不支持cluster mode

如果有两个或更多个分片,则使用无读取副本的Multi-AZ仍将帮助减少影响半径。在不同AZ中具有主节点意味着在活动AZ中剩余的分片将继续运行。如果所有节点都放在单个AZ中,并且AZ发生故障,则所有节点当然都不可用。

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则