为什么redis cluster至少需要三个主节点

redis cluster至少需要三个主节点的原因:1、性能和成本效益;2、滚动更新;3、存储;4、故障转移协商和脑裂。性能和成本效益是指,如果某个节点在三节点群集中发生故障,则只有三分之一的群集资源会消失。

为什么redis cluster至少需要三个主节点-Worktile社区

1、性能和成本效益

考虑建立双节点群集所需的资源。你可以决定在群集的两个节点之间拆分工作负载(称为主动/主动群集),但由于其中一个节点都可能发生故障,因此另一个节点必须能够随时承担所有群集工作负载(VM 和数据)。这意味着每个节点都需要足够的资源来运行所有组合的工作负载,以及维持正常运行和允许额外增长的一些开销。这意味着运行所有内容所需的所有 CPU、RAM 和存储。

在双节点群集中,实际计算资源使用率始终需要小于群集中可用资源的 50%(实际上可能小于 45%,因此每个节点至少有 10% 的可用资源)。与三节点群集相比,在某些情况下,您可以使用多达 67% 或更多,并且仍然可以吸收全节点故障。如果某个节点在三节点群集中发生故障,则只有三分之一的群集资源会消失。当丢失节点中的工作负载故障转移到剩余的两个节点时,可以在剩余的两个节点之间拆分它们,并且剩余的两个节点可以比单个剩余节点更轻松地分担资源负担。

当一个节点在三节点群集中发生故障时,您只剩下两个节点,就像双节点群集一样,但是,在还原丢失的节点之前,另一个节点发生故障的可能性非常小,您不必在资源分配中考虑它。您只需要考虑一次发生故障的三个节点中的一个。将资源分散到三个节点而不是两个节点上意味着每个节点永远不会运行整个群集工作负载,并且服务器规格不需要那么高即可保持可接受或等效的性能,从而节省购买服务器的成本。

另一个需要考虑的性能因素是重建故障节点的性能成本,这在双节点群集中尤为严重。当两个节点中的一个发生故障时,另一个节点不仅必须承担所有群集工作负载,直到另一个节点恢复,而且还必须在恢复的节点重新联机时重建该节点,发送数据,直到该节点再次成为完全冗余的伙伴。这会给运行所有群集工作负载的群集的主动节点带来额外的性能负载,直到其他节点完全恢复。在三节点群集中,修复过程不太重要,因为即使第三个节点发生故障,其余两个节点仍继续充当群集。存储仍然可以保持冗余,当第三个节点恢复时,跨群集重新平衡数据和工作负载所需的重建强度要低得多。

2、滚动更新

群集还可以提供将更新应用于单个节点的功能,而无需通过先将这些工作负载移动到群集的另一个节点来使群集工作负载脱机。这称为滚动更新,因为工作负载在更新发生时从一个节点滚动到另一个节点。在双节点群集中,此过程始终仅限于在更新时将所有工作负载移动到单个节点。

在真正的故障/故障转移情况下(比更新更不常见),您更有可能忍受性能降级,因为强制单个节点运行每个工作负载可能会强调其资源限制。您是否也愿意在每次要使用新软件/固件更新群集时忍受性能下降?应该不会。因此,除了需要指定每个节点足够大以运行故障转移方案中的每个工作负载之外,还必须考虑每次需要应用更新时,规范需要多大才能轻松运行所有工作负载。规格越大,成本越高。

在三节点群集中,由于您有两个其他节点在故障转移或更新期间拆分工作负载,因此当节点脱机进行维护时,您可以以较低的规格和更低的成本提供合理的性能。

3、存储

据已经说明的成本效益,您可能会问:“如果我使用 SAN 或 NAS 等共享存储设备,该怎么办?嗯,曾经有一段时间,这是创建高可用性集群的少数方法,但时代已经改变。如果您使用共享存储设备,则只需将成本转移到单独的硬件上即可。您的存储设备是否也群集以实现高可用性,或者它现在是群集的单点故障?

存储也应群集以实现高可用性,现在您具有相同的双节点群集注意事项。例外情况是,对于存储,您始终希望复制因子至少为 2,这意味着无论您有多少节点,您的可用存储都将始终小于原始存储的 50%。与两个节点相比,使用三个节点不会获得更好的资源效率,但确实可以获得更好的高可用性。

用于群集的共享存储设备在软件定义存储的现代世界中是一个过时的想法。通过在群集节点上使用软件定义的存储和存储资源,将存储分布在群集中的三个或更多节点上比尝试单独群集多个存储设备要容易得多。它也更具成本效益。

4、故障转移协商和脑裂

在双节点群集中,群集逻辑更难确定在存在通信(网络)问题而不是节点故障时要执行的操作。如果群集节点彼此之间失去通信,节点如何知道是否从无法与之通信的节点故障转移工作负载?通常,这是通过某种群集见证来处理的。集群见证(或在某些情况下的多个见证人)是第三个接触点,理论上,它仍然可以通过一个或两个节点联系,并且可以仲裁集群状态。见证服务器必须位于群集外部,因此除了群集之外,它将成为网络中要管理的另一个对象。

如前所述,这在“理论上”有效,但实际上,它更复杂。与真正的第三个节点不同,群集见证服务器并不是群集的真正完全活动成员,并且其对群集状态的评估也可能受到通信问题的阻碍。糟糕的见证实施可能会使群集陷入可怕的裂脑场景,其中两个节点都开始运行所有工作负载,一旦发生这种情况,恢复将是一场噩梦。1 为了进一步阅读,本文探讨了基于强化企业级服务器与双节点备用服务器对/集群的架构与集成自主超融合系统(如 Scale Computing Platform)的架构的成本和运营优缺点。

至少具有三个节点可以确保群集始终具有节点仲裁,以维护正常运行的主动群集。对于两个节点,仲裁不存在。没有它,就不可能可靠地确定既能最大限度地提高可用性又能防止数据损坏的行动方案。当然,没有什么是绝对可靠的,即使是三节点群集也可能因网络问题和仲裁丢失而脱机。但是,如果发生这种情况,则可能会发生比群集脱机更大的问题,并且使用三节点群集进入裂脑方案的可能性几乎为零。

延伸阅读

Redis Cluster集群

Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构达到负载均衡的目的。分布式集群首要解决把整个数据集按照分区规则映射到多个节点的问题,即把数据集划分到多个节点上,每个节点负责整个数据的一个子集。Redis Cluster采用哈希分区规则中的虚拟槽分区。虚拟槽分区巧妙地使用了哈希空间,使用分散度良好的哈希函数把所有的数据映射到一个固定范围内的整数集合,整数定义为槽(slot)。Redis Cluster槽的范围是0 ~ 16383。槽是集群内数据管理和迁移的基本单位。采用大范围的槽的主要目的是为了方便数据的拆分和集群的扩展,每个节点负责一定数量的槽。Redis Cluster采用虚拟槽分区,所有的键根据哈希函数映射到0 ~ 16383,计算公式:slot = CRC16(key)&16383。每一个实节点负责维护一部分槽以及槽所映射的键值数据。

文章标题:为什么redis cluster至少需要三个主节点,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34708

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLWZ, ZLW认证作者
上一篇 2023年1月8日 上午4:39
下一篇 2023年1月8日 上午5:30

相关推荐

  • Java中的数据备份和恢复策略是什么

    Java中实施数据备份与恢复涉及1、数据备份工具与库的应用;2、数据库级别的备份恢复;3、文件系统的同步备份;4、应用层手动数据备份机制;5、备份数据加密与安全;6、备份策略的定期测试。特别是数据备份工具与库的应用为核心,因为这决定了数据备份的效率和准确性。 详细阐述数据备份工具与库的应用是至关重要…

    2024年1月8日
    20200
  • 什么是DevOps

    DevOps为一种强化软件开发与运维团队合作的文化与实践方式,它要求快速、高效地交付且维护软件产品,并不断迭代。1. 快速交付软件产品,该点能缩短产品从开发到部署的周期;2. 提升运维效率,通过自动化手段优化传统运维流程;3. 强化团队协作,打破开发与运维的壁垒,实现协同工作;4. 持续迭代与反馈,…

    2024年1月4日
    18800
  • 甘特图中的依赖关系是如何工作的

    甘特图中依落系的运作机制涉及任务之间时序与完成顺序的相互关联。其中最常见的类型包括完成-开始(FS)、开始-开始(SS)、完成-完成(CC)与开始-完成(SF),每种类型决定了后续任务起始的条件。1、完成-开始依赖是最普遍形式,需前序任务完成后下一任务才能启动。2、开始-开始与完成-完成则分别规定了…

    2023年12月20日
    30600
  • 企业管理系统软件开发工具有哪些

    企业管理系统软件开发工具有:一、PingCode;二、JIRA;三、tracup;四、coding。PingCode是国内软件研发项目管理软件。功能以及解决的问题有:能够支持看板、敏捷等多种项目的管理;管理团队目标,监控单或多项目的进度、管理计划分配资源、管理团队或个人的工作效率。 一、PingCo…

    2023年4月16日
    40000
  • oa是什么,

    OA是指办公自动化(Office Automation),它涉及使用计算机及网络技术来创造、收集、处理、储存和传输办公信息以支撑和优化各项办公流程。办公自动化系统通常包括文档管理、电子邮件、时间管理以及会议安排等功能,其宗旨在于提高工作效率、降低运营成本、改善工作流程和促进信息共享。 详细而言,办公…

    2024年1月11日
    18000
  • 简易路线图怎么做

    做简易路线图的步骤:1、选择合适的项目管理软件;2、定义项目目标;3、识别相关数据点;4、定义项目时间表;5、创建路线图模型;6、初步审查等。选择合适的项目管理软件是指,项目管理软件应该是直观的,并根据需要从其他来源提取数据。 一、做简易线路图的步骤 1、选择合适的项目管理软件 在项目路线图中,选择…

    2023年4月8日
    49900
  • http与https的区别

    http与https的区别有:1、定义不同;2、传输协议不同;3、连接方式不同;4、https需要申请证书;5、http页面响应速度比https快。http是互联网上应用较为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准。https是以安全为目标的http通道,简单讲是http的安全版。…

    2023年1月31日
    38800
  • 需求规划平台有哪些

    需求规划平台有:1. JIRA;2. Aha!;3. ProductPlan;4. Targetprocess;5. VersionOne;6. Microsoft Azure DevOps。JIRA是广泛使用的敏捷项目管理和需求跟踪工具,支持敏捷方法论,如Scrum和Kanban,拥有需求的详细追…

    2023年7月10日
    41200
  • FPGA和嵌入式有哪些区别于联系

    区别和联系有:1、从本质上来说;2、从性质上来说;3、从速度上来说;4、从应用上来说。FPGA偏向于硬件电路,嵌入式则是一整套的架构,包含硬件和软件。FPGA设计属于硬件领域,它用硬件描述语言去实现。而嵌入式则只有软件编程语言去实现。 1、从本质上来说 FPGA偏向于硬件电路,嵌入式则是一整套的架构…

    2023年2月16日
    2.9K00
  • DevOps如何提高应用程序的自动化质量控制和性能分析

    标题:DevOps如何提高应用程序的自动化质量控制和性能分析 摘要:DevOps文化推崇的即是将开发(Development)与运维(Operations)的壁垒打破,实现自动化以及快速反馈。在这一理念驱动下,1、自动化测试成为质量控制不可或缺的部分,确保了代码质量的同时减少人工干预。2、持续集成和…

    2024年1月18日
    12700

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部