从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)
152573 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 66 讲
结束语 (1讲)
结课测试 (1讲)
从 0 开始学架构
15
15
1.0x
00:00/00:00
登录|注册

26 | 高可用存储架构:集群和分区

Elasticsearch master node
Namenode
可伸缩性
容错性
均衡性
独立式备份
互备式备份
集中式备份
城市分区
国家分区
洲际分区
主机节点
数据分配算法
ZooKeeper
决定新的主机
备机检测主机状态
主机复制给备机
分区复制规则
数据分区规则
地理级别故障
数据分散集群
数据集中集群
数据分区架构
集群架构
高可用存储架构

该思维导图由 AI 生成,仅供参考

上一期我讲了高可用存储架构中常见的双机架构,分别为主备复制、主从复制、双机切换和主主复制,并分析了每类架构的优缺点以及适应场景。
今天我们一起来看看另外两种常见的高可用存储架构:数据集群和数据分区

数据集群

主备、主从、主主架构本质上都有一个隐含的假设:主机能够存储所有数据,但主机本身的存储和处理能力肯定是有极限的。以 PC 为例,Intel 386 时代服务器存储能力只有几百 MB,Intel 奔腾时代服务器存储能力可以有几十 GB,Intel 酷睿多核时代的服务器可以有几个 TB。单纯从硬件发展的角度来看,似乎发展速度还是挺快的,但如果和业务发展速度对比,那就差得远了。早在 2013 年,Facebook 就有 2500 亿张上传照片,当时这些照片的容量就已经达到了 250 PB 字节(250 × 1024TB),平均一天上传的图片有 3 亿 5000 万张。如此大量的数据,单台服务器肯定是无法存储和处理的,我们必须使用多台服务器来存储数据,这就是数据集群架构。
简单来说,集群就是多台机器组合在一起形成一个统一的系统,这里的“多台”,数量上至少是 3 台;相比而言,主备、主从都是 2 台机器。根据集群中机器承担的不同角色来划分,集群可以分为两类:数据集中集群、数据分散集群。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

大数据量存储的高可用存储架构包括数据集群和数据分散集群。数据集群适用于数据量不大、集群机器数量不多的场景,如ZooKeeper集群;而数据分散集群则适用于业务数据量巨大、集群机器数量庞大的场景,如Hadoop集群、HBase集群。两种架构形式的复杂度和应用场景不同,需要根据具体业务需求选择合适的架构形式。数据分区架构是基于地理级别的故障设计的高可用架构,通过将数据按照规则分区存储在不同地理位置,规避地理级别故障的影响。设计良好的数据分区架构需要考虑数据量、分区规则和复制规则等多方面因素。常见的分区复制规则包括集中式、互备式和独立式,它们各自具有优缺点。总的来说,了解这些高可用存储架构的特点和适用场景对于构建高可用存储架构具有重要意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学架构》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(58)

  • 最新
  • 精选
  • 空档滑行
    1.远距离集群网络延时较高,而且网络出问题的几率加大,导致数据复制的逻辑会比较复杂 2.成本过高,数据全量复制,等于存储多份 所以更好的办法是从业务端对数据做分区,出现地理故障时只形象一部分用户或者功能的使用

    作者回复: 分析到位👍

    2018-06-27
    92
  • 孙振超
    数据集群可以做到在不同节点之间复制数据,确保当一个集群断网断电的情况下,仍然有机房可以读取数据,但是在对外提供服务时不仅仅考虑是否能读写数据,还需要考虑读写数据所需的耗时。距离过远意味着耗时较长,如果是搭建专线,成本也会非常高,因而从成本和用户体验两个纬度考量远距离同步集群不适合直接对外提供服务。 对于城市级数据集群出故障,主要还是通过短距异地(网络耗时在十毫秒级别)集群来解决,远距离集群主要还是用于做冷备、数据离线比对等功能。

    作者回复: 正解👍👍

    2018-08-15
    56
  • 海罗沃德
    AWS按照地理分区为region,每个region之间大约相当于跨国分区,当然在很多国家里AWS都有多个region比如us-west-1,us-west-2,就分别位于加利福尼亚和俄勒冈,而us-east-1在弗吉尼亚 每个AWS的region下面又有多个availablility zone简称AZ,就是所谓us-west-2 a,us-west-2 b这样的,AZ基本上是不在同一个城市,距离至少要在数百公里以上,以保证地理级别可用 不同的region级别上数据是很难迁移的,如果有多region的数据同步需求,可能需要联系AWS的工程师来调配资源,而且费用也会很高,但是同region下的AZ级别数据同步是很容易的,费用也很低

    作者回复: 感谢补充👍👍👍

    2019-07-14
    3
    35
  • Geek_88604f
    既然数据集群就可以做到不同节点之间复制数据,为何不搭建一个远距离分布的集群来应对地理位置级别的故障呢?从以下几个方面来考虑:业务本身、均衡性、容错性、可伸缩性。 业务本身:在这样的一个集群上网络访问的质量是不可控的,导致用户体验差,用户无法忍受就只能放弃。         均衡性:在大规模的情况下算法很难保证各个服务器上的数据分区是均衡的。一个可能是算法本身在大规模的情况下失效了;另一个可能是集群中节点的负载情况时时刻刻在发生变化,分区一直处在调整当中。         容错性:大规模集群中服务器故障是家常便饭,当服务器故障时数据分区需要分配给其他服务器,这就导致了时时刻刻在发生数据迁移,影响正常业务的带宽。         可伸缩性:一是这样的集群Master是瓶颈,系统节点规模有上限;二是增加或删除节点带来数据分区的大面积迁移 总的来说,搭建一个远距离分布的集群来应对地理位置级别的故障是很不实际的方案,它注定不能将均衡性、容错性、可伸缩性这三者的影响控制在有限的范围内,进而影响正常业务的开展。

    作者回复: 专业👍

    2019-09-16
    17
  • 谭方敏
    数据集群与数据分区。 其中数据集群又分数据集中集群和数据分散集群。 数据集中集群需要考虑的是,1)数据复制,2)状态检测,3)故障选举,典型代表zookeeper。 数据分散集群需要考虑的是,1) 均衡性,2)容错性,3)扩展性, 典型代表Hadoop. 数据分区需要考虑的是,1)数据量,2)分区规则,3)复制规则。 其中复制负责有可以分为1)集中式,2)互备式,3)独立式。 拿现在公司业务来说,现在选择的是mongodb,它能支持数据集中式集群(副本集,一主多从)和数据分散集群(数据分片) 公司在四个区(sz,as,us,eu)都有自己的DC中心,数据分区复制规则为集中式,具体表现是备份数据库都在as, 数据集群模式还是采用数据集中集群,虽然mongodb支持数据分散集群的,但是发现由延迟带来的数据复制问题变得非常严重。后来只弄取消这种方案。

    作者回复: 兄弟的经验很丰富呀👍

    2020-03-08
    14
  • ttxser
    我觉得这是我购买的众多课程中,最值的一个,谢谢!

    作者回复: 谢谢😄每个课程面向的用户和目标不太一样,只能说我的这个正好解决了你的需求,其他课程也不错,我自己也买了几个

    2018-07-24
    3
    13
  • 小鬼爱风雪
    老师讲的很好,但是从架构层面讲技术总有浅尝辄止的感觉,是不是我要从更抽象层面去理解架构。

    作者回复: 那是因为你还没有遇到要你做架构决策的时候,架构决策的时候不是根据哪个API,哪个数据结构,哪个算法来决策的。 你所谓的深入,其实是架构定好了,你来实现,你会觉得写代码感觉良好,但其实前面的架构判断和决策才是最难的,而且没有标准答案

    2021-06-23
    8
  • 文竹
    数据分散集群具有均衡性,容错性,可伸缩性特点,响应比较快。 远距离分布的集群可有如下特点: 1、更容易出现不可用性,具体表现在业务响应慢,数据读/写/复制延迟高 2、一致性也难保证 3、也难保证均衡性,容错性,可伸缩性特点 4、复杂度较近距离的集群呈现指数级增长

    作者回复: 正解👍👍

    2018-08-23
    5
  • LWD
    老师您好,数据分散集群和分区感觉就是现在各种中间件的分片思想,为啥这里要严格区分分区和分散集群的概念呢?文章的分区我反复看了好几遍感觉本质还是分散集群,只不过文章强调了地理位置要足够远,其实本质还是一样的;

    作者回复: 地理位置足够远会带来技术本质的变化,比如说Paxos和Raft这种分布式一致性协议,节点之间的距离就不能太远,太远协议就不能正常运行了,或者就会导致性能很低。 OceanBase底层是Paxos协议,因为部署的时候就需要采用2近1远的机房部署。

    2023-02-20归属地:广东
    4
  • 衣申人
    请问数据分散集群不就是分区吗?文章在论述时的分类和层次上是不是有点重合?还是我理解错了呢?请老师指导

    作者回复: 分散集群是地理位置上在同一个机房,集群中的数据一样;分区分布在不同地理位置,且数据不一样

    2018-07-03
    4
收起评论
显示
设置
留言
58
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部