第 4 章 分布式协同(1)
崔皓
分布式系统引入了应用和服务的分布式部署,会根据需求将应用和服务部署在不同服务器或者不同网络环境中。第 3 章介绍了这些应用和服务是如何相互调用和通信的,本章主要介绍它们是如何协同工作的。当多个应用服务访问同一个资源时会出现互斥现象,为了避免互斥,以及保证数据的一致性,引入了互斥算法;互斥算法是理论基础,在实际工作中我们会利用分布式锁来解决互斥问题;当多个应用服务共同完成一个任务时会出现分布式事务问题,我们会介绍分布式事务的原则和解决方案;应用和服务在集群部署情况下通常会有主从(Master/Slave)之分,主服务器用来写入、读取数据,从服务器(Slave)用来读取数据,当主服务器出现故障时,通常需要选举新的主服务器;最后再看看 ZooKeeper 作为分布式服务协同系统的最佳实践,是如何工作的。总结一下,本章要介绍的内容如下。
分布式系统的特性与互斥问题
分布式锁
分布式事务
分布式选举
ZooKeeper——分布式系统的实践
4.1 分布式系统的特性与互斥问题
想象一下,有两个小孩都想玩玩具,但是玩具只有一个,因此每次只有一个小孩可以玩,且这个小孩玩的时候另一个小孩只能等待。只有当第一个小孩玩完以后,第二个小孩才能得到玩具。在这个例子中,两个孩子争夺的玩具叫作临界资源,他们争夺玩具的动作叫作竞态,每次只有一个孩子能获得玩具的性质叫作互斥。互斥是指每次只允许规定数量的进程进入临界区,超出数量外的进程则无法进入,只能先等待前面的进程完成操作。单机模式下,进程都部署在同一台设备中,但是到了分布式系统中,这些进程部署在不同的网络节点,因此分布式系统的进程互斥需要考虑以下三方面特性。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
本文深入介绍了分布式系统中的协同工作问题,包括分布式系统的特性与互斥问题、分布式锁、分布式事务、分布式选举以及 ZooKeeper 作为分布式服务协同系统的最佳实践。针对互斥问题,文章详细介绍了分布式互斥算法的特性和三类互斥算法,包括集中互斥算法、基于许可的互斥算法和令牌环互斥算法。通过对三种分布式互斥算法的描述、优点、缺点、应用场景的对比,使读者能够快速了解分布式系统中协同工作的挑战和解决方案,以及不同互斥算法的工作原理和适用场景。此外,文章还介绍了分布式锁的由来和定义,以及通过 Redis 缓存实现分布式锁的具体实践。通过生动的秒杀活动场景,读者可以深入理解分布式锁的重要性和实际应用。在分布式事务方面,文章从单体事务的 ACID 特性、CAP 理论和 BASE 理论出发,引出了分布式事务的发展过程和相关解决方案,包括 DTP 分布式事务模型、2PC 解决方案和 TCC 解决方案。总体而言,本文内容丰富、实用性强,适合对分布式系统协同工作感兴趣的读者阅读学习。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式架构原理与实践》
《分布式架构原理与实践》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论