这里引用下DistributedSystems Concepts and Design (Third Edition)中的一句话: "A distributed system is one in which components located at networked computerscommunicate and coordinate their actions only by passing messages"。从这句话我们可以看到几个重点,一是组件分布在网络计算机上,二是组件之间仅仅通过消息传递来通信并协调行动。
图1-1 是一个分布式系统的示意图,从用户的视角看,用户面对的就是一个服务器,提供用户需要的服务,而实际上是靠背后的众多服务器组成的一个分布式系统来提供服务。分布式系统看起来就像一个超级计算机一样。。
我们来理解一下分布式系统的定义。首先分布式系统一定是由多个节点组成的系统,一般来说一个节点就是我们的一台计算机;然后这些节点不是孤立的,而是互相连通的;最后,这些连通的节点上部署了我们的组件,并且相互之间的操作会有协同。
1.1.2 分布式系统的意义
• 升级单机处理能力的性价比越来越低。
• 单机处理能力存在瓶颈。
• 出于稳定性和可用性的考虑。
1.2.4 如何把应用从单机扩展到分布式
1.2.4.1 输入设备的变化
分布式系统由通过网络连接的多个节点组成,那么,输入设备其实可以分为两类,一种是互相连接的多个节点,在接收其他节点传来的信息时,该节点可以看做是输入设备;另外一种就是传统意义的人机交互的输入设备了。
1.2.4.2 输出设备的变化
输出设备和输入设备相仿, 也可以看做有两种, 一种是指系统中的节点在向其他节点传递信息时, 该节点可以看做是输出设备; 另外一种就是传统意义的人机交互的输出设备, 例如终端用户的屏幕等。
1.2.4.3 控制器的变化
在单机系统中, 控制器指的就是CPU中的控制器。在分布式系统中, 我们要介绍的控制器不是像CPU中的控制器那样的具体电子元件, 而是分布式系统中的控制方式。
分布式系统是由多个节点通过网络连接在一起并通过消息的传递进行协调的系统。控制器主要的作用就是协调或控制节点之间的动作和行为。