分布式技术原理与算法解析
聂鹏程
智载云帆 CTO,前华为分布式 Lab 资深技术专家
39663 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
分布式技术原理与算法解析
15
15
1.0x
00:00/00:00
登录|注册

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

Gossip协议
Gossip协议
一致性哈希环
Gossip协议
哈希槽的概念
主备设计
哈希槽
普通节点
首种子节点
种子节点
数据传输和一致性问题
节点是对等的
节点加入/退出集群
故障检测
节点管理
异步消息调用机制
封装了状态和行为的对象
边缘计算中边缘设备的管理
集群结构的设计
非集中式结构的优势
优化Gossip协议中的重复消息问题
Akka集群、Redis集群和Cassandra集群的主要特征
集群间的状态同步
数据存储与操作
一致性哈希的完全P2P结构
数据分片存储
数据传输
数据存储
集群架构
高性能Key-value数据库
集群组建及管理
数据传输
集群管理模块
Actor模型
通过消息传递进行通信和协调
服务的执行和数据的存储分散到不同的服务器集群
思考题
总结
知识扩展
对比分析
Cassandra集群
Redis集群
Akka集群
非集中式结构
如何理解分布式体系结构中的非集中式结构

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

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

什么是非集中式结构?

在非集中式结构中,服务的执行和数据的存储被分散到不同的服务器集群,服务器集群间通过消息传递进行通信和协调。
也就是说,在非集中式结构中,没有中央服务器和节点服务器之分,所有的服务器地位都是平等(对等)的,也就是我们常说的“众生平等”。这样一来,相比于集中式结构,非集中式结构就降低了某一个或者某一簇计算机集群的压力,在解决了单点瓶颈和单点故障问题的同时,还提升了系统的并发度,比较适合大规模集群的管理。
所以近几年来,Google、 Amazon、Facebook、阿里巴巴、腾讯等互联网公司在一些业务中也相继采用了非集中式结构。
接下来,我将为你介绍 3 种典型的非集中式架构系统,包括 Akka 集群、Redis 集群和 Cassandra 集群,来帮助你深入理解非集中式架构。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

分布式体系结构中的非集中式结构是分布式领域中的另一个经典系统结构,也称为分布式结构。在非集中式结构中,服务的执行和数据的存储被分散到不同的服务器集群,通过消息传递进行通信和协调。相比于集中式结构,非集中式结构降低了计算机集群的压力,解决了单点瓶颈和单点故障问题,提升了系统的并发度,适合大规模集群的管理。一些典型的非集中式架构系统包括Akka集群、Redis集群和Cassandra集群。Akka集群基于Actor模型实现,采用Gossip协议进行数据同步,解决了并发操作引入的数据同步和一致性问题。在实际业务场景中,分布式数据存储中的集群管理是一个关键因素,开源数据库Redis的集群管理系统为一个重要例子。Redis集群是一个开源的、包含多种数据结构的高性能Key-value数据库,支持数据的持久化和备份,基于内存运行,具有极高的性能。Redis集群采用去中心化结构,每个节点均可与其他节点通信,利用哈希槽实现了数据的分片存储,提高了写的并发能力。Cassandra集群也采用去中心化的架构,基于一致性哈希的完全P2P结构,解决了集中式结构的单点故障问题,提高了读写数据的并发能力。集群间的状态同步通过Gossip协议来进行P2P的通信。总的来说,非集中式架构的集群管理系统具有去中心化、并发能力强等特点,适用于大规模分布式系统的管理。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式技术原理与算法解析》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(29)

  • 最新
  • 精选
  • 冬风向左吹
    consul也是非集中式结构,也使用了gossip协议传递消息。

    作者回复: 👍,是的

    2020-04-13
    5
  • 小孩
    非集中式架构,那master/slave的master作用是什么,为啥还要选主,希望老师能看到解答一下

    作者回复: 非集中式架构下,master通常称为leader节点,该leader节点与其他节点在对等的情况下,多了一些决策能力,比如故障节点是否踢出集群等

    2019-12-20
    4
  • Jackey
    终于赶上老师的步伐啦哈哈哈。 这里有几个个问题想请教一下老师。 1. 文中说“当集群组建完成后,就不存在种子节点与普通节点之分了,每个节点均可执行 Actor 应用程序。”这里如何判断集群组建完成呢?没有了种子节点和普通节点的区分,后面想加入新的节点又怎么加入呢? 2. 本文讲了3个集群都使用gossip通信协议,也提到了它可能会浪费带宽,那么它的优势在哪呢?

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

    2019-10-14
    3
  • 波波安
    使用非集中式更好,边缘计算是靠近用户端的,规模大,终端数量多,对性能要求高。

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

    2019-10-19
    2
  • 奋斗的小蜗牛
    老师,你好!请问kafka是属于非集中式结构吗?

    作者回复: 基于zookeeper协调的分布式日志系统,是集中式架构

    2020-05-30
    1
  • 随心而至
    各种开源框架令人眼花缭乱,但背后所用的原理都是一致的。面对不同业务场景,大牛们各显神通,把原理按需组合,造出一个个轮子。 通过本专栏,可以明了轮子背后的原理,从而举一反三,甚至能力到了,可以造自己的轮子。 赞赞赞

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

    2019-10-14
    2
    1
  • 亢(知行合一的路上)
    Akka 集群中的节点既可以做计算也可以做存储,Redis 和 Cassandra 是存储的集群。三者的通信协议都一样,各有特色,需要根据场景来选择。 技术选型要结合业务需求,这些设计没有绝对的优劣,借鉴合适的。 多学习,让自己的工具箱鼓起来。

    作者回复: 是的,技术没有绝对的优势,不同的场景适合不同的技术。

    2020-03-06
  • 王大伟
    老师好,本篇章讲到Redis通信用Gossip协议,也就是无中心化的P2P模式;前面章节讲到了Redis选主用到了Raft协议,而我们知道Raft一定会选出一个主来的。这跟无中心化的P2P不是矛盾吗
    2019-10-16
    4
    12
  • Dale
    我特意查了下边缘计算的概念,边缘计算是为应用开发者和服务提供商在网络的边缘侧提供云服务和IT环境服务;目标是在靠近数据输入或用户的地方提供计算、存储和网络带宽”。边缘计算的设备众多,分散各个地方,对可靠性和速度要求高,相比而言使用非集中式更好。
    2019-10-14
    12
  • Gosdip协议,又称八卦协议,我们想想八卦是怎么传播的,一群爱八卦的卦友,其中一个知道了一个八卦消息,然后见着一个卦友就八卦一下,这个卦友同样也是如此见着其他卦友就八卦一次,直到所有卦友都知道这个八卦未知,人是聪明的不会重复的给一个卦友反复八卦,这就是Gossip协议的优化策略啦! 把分布式系统想象成一波人,一起搞一个事情,好多事情就比较容易理解了。
    2020-02-15
    3
收起评论
显示
设置
留言
29
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部