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

03 | 分布式互斥:有你没我,有我没你

2. 传统单机上的互斥方法不能用于分布式环境的原因
1. 改进集中式算法、分布式算法和令牌环算法的地方
适用于节点数量较多的系统或广域网系统
适合通信模式为令牌环方式的系统
高通信效率,但会带来无效通信
令牌按顺时针方向在程序间传递
适合节点数目少且变动不频繁的系统
高通信成本,低可用性
程序相互协商访问资源
简单、易实现,但协调者成为性能瓶颈和单点故障
引入协调者来控制资源访问
临界资源只能被一个程序访问
分布式系统中的排他性资源访问方式
课后问题
两层结构的分布式令牌环算法
令牌环算法
分布式算法
集中式算法
什么是分布式互斥?
如何选择合适的分布式互斥算法?

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

你好!我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
通过前面的两篇文章,相信你已经对此次的分布式世界之行有了一个初步了解,想必对此次旅行也是充满期待。今天,我就带你正式踏上第一站:分布式协调与同步。在这一站,我将带你学习如何让分布在不同计算机上的程序具有“团队精神”,换句话说就是如何让程序通过协作共同去达成一个业务目标。
在本站,我将带你打卡的第一个景点是分布式互斥。那,什么是分布式互斥呢?

什么是分布式互斥?

想象一下,你正在一家餐厅使用自助咖啡机泡制咖啡,突然有个人过来挪走了你的杯子,开始泡制他自己的咖啡。你耐着性子等他操作完,继续泡制自己的咖啡。结果你开始没多久,他又回来中断了你泡制咖啡的过程。相信要不了几个回合,你和他就会上演一场“有你没我,有我没你”的格斗了。
这样现实的问题也同样存在于分布式世界。就像我们使用自助咖啡机时不希望被打扰一样,对于同一共享资源,一个程序正在使用的时候也不希望被其他程序打扰。这,就要求同一时刻只能有一个程序能够访问这种资源。
在分布式系统里,这种排他性的资源访问方式,叫作分布式互斥(Distributed Mutual Exclusion),而这种被互斥访问的共享资源就叫作临界资源(Critical Resource)。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

分布式系统中的互斥算法是确保多个程序在访问共享资源时能够互斥地进行操作的重要技术之一。本文介绍了集中式算法和分布式算法作为分布式互斥算法的两种主要方法。集中式算法通过引入一个协调者来管理程序对临界资源的访问,实现了资源的互斥访问,但可能存在性能瓶颈和单点故障的风险。分布式算法采用民主协商和令牌环算法,分别实现了公平访问和高稳定性的特点,适用于不同规模和通信模式的系统。总的来说,集中式算法具有简单易实现的特点,但在性能和可用性方面存在一定的挑战;而分布式算法则更加灵活,适用于不同场景的分布式系统。 文章还介绍了适用于大规模系统的两层结构的分布式令牌环算法,该算法将广域网系统中的节点组织成两层结构,适用于节点数量较多的系统或广域网系统。通过局域网和协调进程的环形结构,实现了局部和全局令牌的传递,从而实现了分布式系统中的互斥访问。 总的来说,本文通过生动的比喻和实际应用场景,生动地阐述了各种算法的特点和适用范围,为读者提供了深入理解分布式互斥算法的视角。文章内容丰富,涵盖了分布式系统中的互斥算法的基本概念和适用于大规模系统的分布式令牌环算法,为读者提供了全面的知识扩展和思考问题的引导。 总的来说,本文通过生动的比喻和实际应用场景,生动地阐述了各种算法的特点和适用范围,为读者提供了深入理解分布式互斥算法的视角。

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

全部留言(76)

  • 最新
  • 精选
  • 青莲
    集中式算法:可参照redis集群通信模式,通过hash key将大量的请求分散到不同的master,以处理大量请求,每个master由小集群主从节点来保障单点故障 分布式算法:分布式算法可在集群中过半数同意就识为其同意,降低通信数,如分布式选举场景 令牌环算法:可根据参与者使用频率列出权重,结合平滑加权轮询算法选出下一个参与者 传统单机上的互斥只能针对单台机器上的程序相互间通信,而分布式环境往往是多台服务器上的程序相互通信

    作者回复: 从你的回复,可以看出你很爱学习和思考,对开源软件进行了学习和总结👍

    2019-09-28
    9
    77
  • 719
    精通不但要有理论还要有丰富的实践,仅34节课怎么才能做到精通?

    作者回复: 首先,不积跬步无以至千里,不积小流无以成江海! 另外,教是为了不教,本专栏的一个目的也是希望通过划重点、寻路线、建体系帮助大家培养学习及运用知识的能力。 我们要解决的问题无穷无尽,唯有学习及运用的能力才是以不变应万变的不二法门。

    2019-09-29
    2
    13
  • 2018
    对于集中式算法,协调者容易引发单点故障的问题,想请问下老师,协调者程序如果用集群的方式话,可以规避这种问题嘛?

    作者回复: 协调者采用集群方式相当于做了备份,提升了系统可靠性,但在正常工作时,只有一个master节点提供服务,无法避免瓶颈问题。

    2019-11-21
    3
    2
  • 啦啦啦
    不错不错

    作者回复: 谢谢!宝剑赠英雄,红粉增佳人!

    2019-09-27
    2
  • 阿卡牛
    CAP的相关内容会在哪一课中讲

    作者回复: CAP的相关内容会在分布式数据存储“CAP理论:这顶帽子我不想要”中介绍,请继续学习哟

    2019-10-12
    2
    1
  • 北冥有鱼
    老师总结的很好,言简意赅,很精彩。 期待更新

    作者回复: 谢谢!宝剑赠英雄,红粉赠佳人!

    2019-09-29
    1
  • Damon
    讲的挺好的,形象生动

    作者回复: 谢谢!宝剑赠英雄,红粉赠佳人!

    2019-09-27
    1
  • redis的分布式锁,应该算是集中式算法的应用吧,设置超时时间避免锁不能释放的问题。

    作者回复: 是的,设置超时时间是避免在某些故障情况下,锁无法释放的问题。

    2020-08-03
  • 鸭先知
    我觉得单机互斥和分布式互斥算法应该都可以通用,只是实现细节会不一样

    作者回复: 单机互斥和分布式互斥所考虑的维度有很多不一样,比如单机不跨节点,那么就不用考虑节点之间的网络问题,但在分布式环境下的互斥,多节点之间需考虑节点之间的网络问题、可靠性等;

    2020-03-29
  • Geek_62f8f3
    领域小白,没啥说的,就希望能学完后对分布式技术知识框架有个概括性了解。另外,从聂博士的课可以看出,果然经历过博士学习的洗礼,逻辑上非常清晰。

    作者回复: 👍,加油,希望你学完本课程,能学到更多的知识,并应用到实践中。

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