分布式系统简介

定义

  • 组件分布在网络计算机上

  • 组件之间仅仅通过消息传递进行通信和协调行动

意义

  • 提高系统可用性,防止单节点故障引起的系统不可用

  • 提升系统整体性能,通过负载均衡技术(硬件负载均衡,软件负载均衡),避免单机性能瓶颈

特点

  • 分布性:分布式系统中的多台计算机都会在空间上随意分布

  • 对等性:分布式系统中的计算机没有主/从之分

  • 并发性:分布式系统中可能会并发地操作一些共享的资源

  • 缺乏全局时钟:分布式系统的时钟和事件顺序

  • 故障总会发生:任何在设计阶段考虑到的异常情况,一定会在系统实际运行中发生异常故障

问题

  • 通信异常:由于网络本身的不可靠性。分布式系统需要在各节点之间进行网络通信,因此每次通信都会伴随网络不可用风险。即使分布式系统各节点之间的网络通信能够正常进行,其延时也会远大于单机操作。现代计算机体系结构中,单机内存访问的延时在纳秒数量级(通常是10ns左右),而正常的一次网络通信的延迟在0.1~1ms左右(相当于内存访问延时的100多倍),如此巨大的延时差也会影响消息的首发过程,因此消息丢失和消息延迟变得非常普遍

  • 网络分区:由于网络通信异常,导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式系统的所有节点中,只有部分节点能够正常进行通信,而另一些节点则不能。当网络分区出现时,分布式系统会出现局部小集群,在极端情况下,原本需要整个分布式系统才能完成的功能,是对分布式系统一致的最大难题

  • 三态:分布式系统中的每一次请求与响应,存在特有的”三态“概念,即成功、失败与超时。传统单机系统中,应用程序在调用一个函数后,能够得到一个非常明确的响应:成功或失败。而在分布式系统中,由于网络是不可靠的,通常网络通信能够接收到成功或失败的响应,但是当网络出现异常时,就可能会出现超时现象(请求或响应过程发生了消息丢失现象),这时网络通信的发起方无法确定当前请求是否被成功处理

  • 节点故障:分布式系统中的节点出现宕机或“假死”现象,每个节点都有可能出现故障

 

posted @ 2016-09-25 15:39  ☜沉默的人啊☞  阅读(149)  评论(0编辑  收藏  举报