无副本的 ElastiCache 多 AZ 设置

0

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

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

profile picture
EXPERTE
gefragt vor einem Jahr79 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor einem Jahr

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen