分布式技术原理与算法解析
聂鹏程
智载云帆CTO,前华为分布式Lab资深技术专家
立即订阅
5969 人已学习
课程目录
已更新 36 讲 / 共 34 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 四纵四横,带你透彻理解分布式技术
免费
01 | 分布式缘何而起:从单兵,到游击队,到集团军
02 | 分布式系统的指标:啥是分布式的三围
第一站:分布式协调与同步 (6讲)
03 | 分布式互斥:有你没我,有我没你
04 | 分布式选举:国不可一日无君
05 | 分布式共识:存异求同
06 | 分布式事务:All or nothing
07 | 分布式锁:关键重地,非请勿入
08 | 分布式技术是如何引爆人工智能的?
第二站:分布式资源管理与负载调度 (6讲)
09 | 分布式体系结构之集中式结构:一人在上,万人在下
10 | 分布式体系结构之非集中式结构:众生平等
11 | 分布式调度架构之单体调度:物质文明、精神文明一手抓
12 | 分布式调度架构之两层调度:物质文明、精神文明两手抓
13 | 分布式调度架构之共享状态调度:物质文明、精神文明多手协商抓
14 | 答疑篇:分布式事务与分布式锁相关问题
第三站:分布式计算技术 (4讲)
15 | 分布式计算模式之MR:一门同流合污的艺术
16 | 分布式计算模式之Stream:一门背锅的艺术
17 | 分布式计算模式之Actor:一门甩锅的艺术
18 | 分布式计算模式之流水线:你方唱罢我登场
第四站:分布式通信技术 (4讲)
19 | 分布式通信之远程调用:我是你的千里眼
20 | 分布式通信之发布订阅:送货上门
21 | 分布式通信之消息队列:货物自取
22 | 答疑篇:分布式体系架构与分布式计算相关问题
第五站:分布式数据存储 (5讲)
23 | CAP理论:这顶帽子我不想要
24 | 分布式数据存储系统之三要素:顾客、导购与货架
25 | 数据分布方式之哈希与一致性哈希:“掐指一算”与“掐指两算”的事
26 | 分布式数据复制技术:分身有术
27 | 分布式数据之缓存技术:“身手钥钱”随身带
特别放送 (3讲)
特别放送 | 分布式下的一致性杂谈
特别放送 | 徐志强:学习这件事儿,不到长城非好汉
特别放送 | 那些你不能错过的分布式系统论文
第六站:分布式高可靠 (5讲)
28 | 分布式高可靠之负载均衡:不患寡,而患不均
29 | 分布式高可靠之流量控制:大禹治水,在疏不在堵
30 | 分布式高可用之故障隔离:当断不断,反受其乱
31 | 分布式高可用之故障恢复:知错能改,善莫大焉
32 | 答疑篇:如何判断并解决网络分区问题?
分布式技术原理与算法解析
登录|注册

10 | 分布式体系结构之非集中式结构:众生平等

聂鹏程 2019-10-14
你好,我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
在上一篇文章中,我带你了解了分布式体系结构中的集中式结构。虽然很多云上的管理都采用了集中式结构,但是这种结构对中心服务器性能要求很高,而且存在单点瓶颈和单点故障问题。
为了解决这个问题,分布式领域中又出现了另一经典的系统结构,即非集中式结构,也叫作分布式结构。那什么是非集中式结构呢,它的原理是什么样的,又有哪些集群采用了这种结构呢?
今天,我们就一起打卡非集中式结构,揭开它的神秘面纱吧。

什么是非集中式结构?

在非集中式结构中,服务的执行和数据的存储被分散到不同的服务器集群,服务器集群间通过消息传递进行通信和协调。
也就是说,在非集中式结构中,没有中央服务器和节点服务器之分,所有的服务器地位都是平等(对等)的,也就是我们常说的“众生平等”。这样一来,相比于集中式结构,非集中式结构就降低了某一个或者某一簇计算机集群的压力,在解决了单点瓶颈和单点故障问题的同时,还提升了系统的并发度,比较适合大规模集群的管理。
所以近几年来,Google、 Amazon、Facebook、阿里巴巴、腾讯等互联网公司在一些业务中也相继采用了非集中式结构。
接下来,我将为你介绍 3 种典型的非集中式架构系统,包括 Akka 集群、Redis 集群和 Cassandra 集群,来帮助你深入理解非集中式架构。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式技术原理与算法解析》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(17)

  • Dale
    我特意查了下边缘计算的概念,边缘计算是为应用开发者和服务提供商在网络的边缘侧提供云服务和IT环境服务;目标是在靠近数据输入或用户的地方提供计算、存储和网络带宽”。边缘计算的设备众多,分散各个地方,对可靠性和速度要求高,相比而言使用非集中式更好。
    2019-10-14
    5
  • 王大伟
    老师好,本篇章讲到Redis通信用Gossip协议,也就是无中心化的P2P模式;前面章节讲到了Redis选主用到了Raft协议,而我们知道Raft一定会选出一个主来的。这跟无中心化的P2P不是矛盾吗
    2019-10-16
    1
    2
  • 大新
    针对AKKA集群修改数据的操作,节点1中x=1被修改后,怎么知道其它节点的时间戳是否比1更高,万一其它节点修改的是y=2呢?麻烦老师或同学指导下,谢谢
    2019-11-22
    1
  • 波波安
    使用非集中式更好,边缘计算是靠近用户端的,规模大,终端数量多,对性能要求高。

    作者回复: 从边缘计算的特征来看,比如边缘计算的资源相比云侧受限,边缘计算可能存在移动性强等特征,非集中式方式可能更合适一些。

    2019-10-19
    1
  • 逍遥法外
    老师您好,您文中讲的:Cassandra 采用去中心化的架构,解决了集中式结构的单点故障问题。可不可以这样理解:当有节点发生故障时,该节点的数据会丢。但是并不影响整个集群接下来的整体可用性,仅仅会丢失故障节点的数据。
    2019-10-16
    1
  • 老师好,对于分片存储,如果某节点故障(包括主备),那么数据查询和写入时应当如何处理?
    2019-10-14
    1
  • JackJin
    Gossip协议:https://www.jianshu.com/p/8279d6fd65bb
    2019-10-14
    1
  • Jackey
    终于赶上老师的步伐啦哈哈哈。
    这里有几个个问题想请教一下老师。
    1. 文中说“当集群组建完成后,就不存在种子节点与普通节点之分了,每个节点均可执行 Actor 应用程序。”这里如何判断集群组建完成呢?没有了种子节点和普通节点的区分,后面想加入新的节点又怎么加入呢?
    2. 本文讲了3个集群都使用gossip通信协议,也提到了它可能会浪费带宽,那么它的优势在哪呢?

    作者回复: 1. 这里说的是两个阶段,一种是组建集群的阶段,在这种情况下,节点状态分为种子节点和非种子节点;另一种是集群运行态,这种情况下,节点状态分为leader节点和非leader节点。如果后面要加入新的节点,新节点会读取配置文件中设置的种子节点,向种子节点发送加入请求,对于新节点处于集群组建阶段。
    2. gossip通信协议的优势,主要是解决了中心化架构的中心瓶颈问题,gossip协议,每个节点选择k个节点发送信息,而在中心化架构中是中心节点与其他所有节点发送信息。

    2019-10-14
    1
  • Dale
    老师,上面讲的redis集群有个疑问,数据通过hash分散存储在三台不同的服务器上,每台服务器是数据孤点,如果其中一台服务器故障了,就会导致服务异常了吧。实例这里是不是要考虑数据多副本的情况
    2019-10-14
    2
    1
  • 忆水寒
    我原来比较熟悉P2P协议特别是去中心化的DHT网络,看这篇文章能发现很多相同点,特别是co s sandra集群方案和DHT更相似。
    2019-10-14
    1
  • 老师,我有两个疑问:
    1、文中的对比,Cassandra 集群是基于hash值分区存储,Redis 集群每个节点代表一部分哈希槽,一个哈希槽代表一个哈希值区间,而 Cassandra 集群中每个节点代表一个哈希值。也就是: Cassandra 集群有多少不同的hash值,就需要多少不同的 Cassandra 集群节点吗?
    2、Cassandra 集群的系统架构是基于一致性哈希的完全 P2P 结构,没有 Master 的概念,所有节点都是同样的角色,彻底避免了因为单点问题导致的系统不稳定。意思:Cassandra 集群的每个节点都是存储全量信息吗?会数据量爆炸吗?
    也希望看明白的同学指点一下迷津,谢谢~
    2019-12-02
  • OneThin
    有个疑问,看文中redis的分片的位置计算,
    节点 A 包含 0 到 5500 号哈希槽;
    节点 B 包含 5501 到 11000 号哈希槽;
    节点 C 包含 11001 到 16383 号哈希槽。
    是不是槽数/节点数,不是槽点%节点数
    2019-11-22
  • kylexy_0817
    Redis集群如果需要扩容的话,就要重新分配SLOT,并且做数据迁移,比较麻烦,老师有什么好方法介绍下么?
    2019-11-09
  • leslie
    其实有一点很明显:非集中式的管理更麻烦;其实到底采用集中式还是非集中式的管理方式还是看需求吧,"边缘计算中的边缘设备的管理“。其实现实环境中有些是多组的:其实有多组的话,非集中式就够了,如果只有1组还是集中式更稳定靠谱。
    2019-10-16
  • tt
    是不是可以理解为PoW、PoS 和 DPoS 三种达成共识的方法可以用于公链,那么Akka集群的方法就可以用于私链或着说它更适合于规模小的链?
    2019-10-14
  • 小白
    聂老师好,文中关于redis集群有一个疑问。集群中每一对儿redis主、从服务是否需要分布到不同的服务器节点上才能实现数据的多副本。哈希槽分布只是实现了数据分片的问题,数据副本是用主从实现的吗
    2019-10-14
  • 随心而至
    各种开源框架令人眼花缭乱,但背后所用的原理都是一致的。面对不同业务场景,大牛们各显神通,把原理按需组合,造出一个个轮子。
    通过本专栏,可以明了轮子背后的原理,从而举一反三,甚至能力到了,可以造自己的轮子。
    赞赞赞

    作者回复: 根据你的留言,相信你的举一反三能力一定很强,加油

    2019-10-14
收起评论
17
返回
顶部