论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
Oracle
›
《分布式技术原理与算法解析》学习笔记Day03 ...
《分布式技术原理与算法解析》学习笔记Day03
立山
论坛元老
|
2023-2-6 22:40:02
|
显示全部楼层
|
阅读模式
楼主
主题
1029
|
帖子
1029
|
积分
3087
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
分布式互斥方法
什么是分布式互斥?
对于同一个共享资源,当一个程序正在使用的时候,不希望被其他程序打扰,这种排他性的资源访问方式,叫做分布式互斥,被互斥访问的共享资源被称作临界资源(Critical Resource).
有什么方法可以让分布式系统里的程序互斥地访问临界资源?
我们一般有三种方法:
集中式算法(霸道总裁)
分布式算法(民主协商)
令牌环算法(轮值CEO)
集中式互斥算法
我们引入一个协调者程序,每个程序在访问临界资源时,先向协调者发送一个请求,如果当前没有其他程序使用这个资源,协调者直接发送授权信息给请求程序去访问;否则,协调者会按照先来后到的顺序为请求程序“排个号”。如果有程序使用完资源,则通知协调者,协调者从“排号”的队列里取出排在最前面的请求,并给它发送授权消息。拿到授权消息的程序,可以直接去访问临界资源。
集中式算法也被称为中央服务器算法。
使用该算法,一个程序访问一次临界资源,需要完成3次消息交互:
向协调者发送请求授权信息
协调者向程序发放授权信息
程序使用完临界资源后,向协调者发送释放授权信息
集中式算法的优点在于直观、简单、信息交互量少、易于实现,并且所有程序都只和协调者通信,程序彼此之间无需通信。
集中式算法的缺点在于协调者:
协调者会成为系统的性能瓶颈。
协调者容易引发单点故障,协调者不可用时,会导致整个系统不可用。
分布式互斥算法
当一个程序要访问临界资源时,先向系统中的其他程序发送一条请求信息,在接收到所有程序返回的同意消息后,才可以访问临界资源。其中请求消息包括所请求的资源、请求者ID以及发起请求的时间。
它是一种使用组播和逻辑时钟的算法。
使用该算法,一个程序访问一次临界资源,需要进行2*(n-1)次消息交互:
向其他n-1个程序发送访问临界资源的请求,总共需要n-1次消息交互
需要接收到其他n-1个程序回复的同意消息,才能访问资源,总共需要n-1次消息交互
它的缺点主要包括:
当系统内需要访问临界资源的程序增多时,或者需要访问的临界资源数量增多时,容易产生“信令风暴”,也就是程序收到的请求完全超过了自己的处理能力,导致自己正常的业务无法展开。
一旦某一程序发生故障,无法发送统一消息,那么其他程序均处于等待回复的状态中,使得整个系统处于停滞状态,导致不可用(一种改进可用性的办法是如果检测到一个程序故障,那么直接忽略该程序,无需再等待它的同意消息)。
分布式算法提供了一个“先到先得”和“投票全票通过”的公平访问机制,但是它的通信成本比较高,可用性也比集中式算法低,适用于临界资源使用频度较低,且系统规模较小的场景。
令牌环算法
所有程序构成一个环结构,令牌按照顺序在程序之间传递,收到令牌的程序有权访问临界资源,访问完成后将令牌传送给下一个程序,如果该程序不需要访问临界资源,则直接把令牌传送给下一个程序。
令牌环算法也被称作基于环的算法。它非常适合通信模式为令牌环方式的分布式系统。
令牌换算法的优点在于单个参与者通信效率高以及可用性比较高。它的缺点在于当参与者对临界资源使用频率比较低时,会带来大量无用通信。
令牌环算法的公平性高,适用于系统规模较小,并且系统中每个程序使用临界资源频率高且使用时间较短的场景。
出处:
http://wing011203.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
立山
论坛元老
这个人很懒什么都没写!
楼主热帖
IoTOS-v1.5.3 新增 智能诊断&会话记录 ...
【学习笔记】WPF-01:前言
基于SqlSugar的开发框架循序渐进介绍( ...
网络安全-技术与实践 书本习题练习 ...
CentOS7 单机版使用kubeadm安装K8S ...
IO流的使用
开源直播课丨大数据集成框架ChunJun类 ...
Python中可以用三种方法判断文件是否存 ...
WEB安全基础入门—身份验证漏洞 ...
解读数仓常用模糊查询的优化方法 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Mysql
SQL-Server
网络安全
MES
物联网
程序人生
.Net
前端开发
移动端开发
快速回复
返回顶部
返回列表