从系统角度看分布式系统的挑战

来源:互联网 发布:中国历史延续 知乎 编辑:程序博客网 时间:2024/04/30 11:43
在《分布式计算:原理、算法与系统》书中,1.8.1小节综述了设计和构建分布式系统时需要仔细考虑的10个方面,这10个方面也可以作为观察一个分布式系统的10个角度。


设计和构建分布式系统时,以下几个方面务必仔细考虑。


1)通信。这个任务包括设计适当的网络间进程通信机制。一些样例机制:远程过程调用(RPC),远程对象调用(ROI),面向流的通信和面向消息的通信。


2)进程。涉及的问题包括:在客户端/服务器的进程和线程管理、代码迁移、软件与移动代理的设计等。


3)命名。为了以透明和可扩展的方式来定位资源和进程,设计一个易于使用并且鲁棒的方案来命名、分配标识符和地址是必不可少的。在移动系统中进行命名带来了进一步的挑战,这是由于名字不能容易地绑定到任何静态地理拓扑上。


4)同步。在进程之间的同步与合作机制是必不可少的。互斥是同步的典型例子,但还需要许多其他形式的同步,如领导者选举。此外,物理时钟的同步,能对所经过时间的本质进行刻画的逻辑时钟,以及全局记录算法,这些都需要不同形式的同步机制。


5)数据存储与访问。数据存储的方式以及所隐含的通过网络对数据的快速和可扩展的访问机制,是影响性能的重要因素。文件系统设计的一些传统问题在分布式系统环境下需要重新考虑。


6)一致性与副本。为了避免出现瓶颈,提供数据的快速访问以及提供可扩展性,对数据对象进行复制是非常必要的。这会导致出现管理副本的问题,以及在分布式环境下维护副本/缓存之间一致性的问题。一个简单的例子是如何取舍数据访问的粒度(大小)。


7)容错。容错需要在任何连接、节点、进程错误的情况下保持操作正确、高效。弹性过程、可靠的通信、分布式提交、检查点和恢复、协商和共识、故障检测以及自稳定性是一些提供容错的机制。


8)安全。分布式系统安全涉及密码学的各个方面、安全通道、访问控制、密钥管理--生成、分发、认证以及安全组管理。


9)API与透明性。易于使用的通信等专业化服务的API对于分布式系统服务被非专业用户广泛接收是很重要的。透明性用来隐藏实现策略,避免让使用者卷进细节,可以按照下面的方式分类。访问透明度隐藏了不同系统中的数据表示的差异,提供统一的操作来访问系统资源。位置透明性使得资源的位置对于使用者来说是透明的。迁移透明性允许在不更改名字的情况下迁移资源。允许在访问资源的过程中对资源进行迁移被称为重定位透明性。复制透明性是指不让用户感觉到进行了复制。并发透明性隐藏了用户对共享资源的并发访问。失败透明性是指系统是可靠且容错的。


10)可扩展性和模块化。算法、数据(对象)以及服务必须尽可能地分布。诸如复制、缓存、缓存管理和异步处理等技术能够增加可扩展性。
0 0
原创粉丝点击