wera00 2011-09-25
分布式系统可以比喻为一个跨节点的操作系统,包括:
分布式通信系统
分布式存储系统
分布式计算系统
分布式监控系统
分布式部署系统
分布式调度系统
其中后三者可以归类到分布式管理系统中,后续对这几部分分别进行考察。
分布式通信系统是分布式系统的基础,分布式系统依赖节点之间的相互通信,而通信方式可以是点对点、订阅通知、广播等各种类型,通信失败后可以丢弃、重发或超时处理,这些都是依赖分布式通信系统进行处理的。分布式通信系统主要有两大类,一类是以库的形式提供,没有一个中心或分布式地通信服务器,这类比较简单,但提供的功能也有限,zeromq就是这样一个库。还有一类是有独立部署的通信服务器,可以是单个的也可以是集群的,比较有名的开源实现有rabbitmq,activemq等。
分布式存储系统包括很多内容,有分布式文件系统(对象存储),分布式块存储,分布式NoSQL存储,分布式关系数据库等等
分布式计算系统更加复杂,没有一个统一的标准,可以是一个分布式计算平台,也可以是分布式计算框架,比如MapReduce框架,Amazon的EC2服务也可以认为是一个分布式计算系统。
分布式系统中使用什么语言开发软件?目前对分布式支持较好的语言有erlang,后续会重点考察。不过,作为一个分布式地操作系统,不应该限制软件使用什么开发,使用任何软件开发,只要符合分布式系统相互之间通信的协议,就是一个可用的软件。由此可见,在分布式操作系统中,通用协议非常重要。