并行与分布式系统中的通信、原子操作与共识协议
1. 云弹性与通信机制
在分布式系统里,云弹性是一项关键特性,它指的是运行在云端的服务能够按需获取资源,并根据资源的使用量进行付费。通信渠道则让并发活动得以协同工作和协调。通信协议能把嘈杂、不可靠的渠道转化为按顺序传递消息的可靠渠道。
并发活动之间的通信方式主要有两种:共享内存和消息传递。像云应用的多个实例、服务器及其客户端等,很多应用都采用消息传递的方式进行通信。消息传递接口(MPI)支持同步和异步通信,在并行与分布式应用中经常被使用。消息传递有助于实现模块化,并且能避免通信活动相互影响,比如服务器出现故障时,在其不可用期间未使用该服务的客户端不会受到影响。
并行应用的通信模式更具结构性,而分布式应用的并发活动通信模式则更加动态和无结构。屏障同步要求并发运行的线程在完成当前任务后,才能一起进入下一个任务。有时,会有一个协调者来协调并发活动之间的通信;而在其他情况下,各个线程可以直接相互通信。
2. 原子操作
2.1 共享资源处理挑战
并行和分布式应用在处理共享资源时需要特别小心。以金融应用为例,共享资源可能是一个账户记录。一个代表交易的线程需要先访问账户读取当前余额,然后更新余额,最后将新余额写回。如果线程在完成这三个步骤之前被中断,并且另一个操作同一账户的线程继续执行,那么金融交易的结果就会出错。另外,处理从一个账户到另一个账户的转账交易时,在完成第一个账户的操作后系统崩溃,会导致数据不一致,即从第一个账户扣除的金额没有存入第二个账户。
2.2 原子操作的概念与特点
在这种情况下,多步骤操作应该能够不受干扰地完成,即操作
超级会员免费看
订阅专栏 解锁全文
19

被折叠的 条评论
为什么被折叠?



