1、分布式系统的特点以及设计理念超图研究院SuperMap GIS Technology Institute研究所李少华分布式系统的特点业务规模不断增大业务变得越来越复杂并发用户请求越来越多处理的数据也越来越多可扩展性让多台服务器协同工作,完成单台服务器无法处理的任务,尤其是高并发或者大数据量的任务分布式系统的特点1、分布式系统对服务器硬件要求很低对服务器硬件可靠性不做要求,允许服务器硬件发生故障,硬件的故障由软件来容错。所以分布式系统的高可靠性是由软件来保证。对服务器的性能不做要求,不要求使用高频CPU、大容量内存、高性能存储等等。因为分布式系统的性能瓶颈在于节点间通讯带来的网络开销,单台服务器
2、硬件性能再好,也要等待网络IO。传统数据中心Pets模式竖井式硬件现代数据中心Cattle模式通用硬件VS.分布式系统的特点1、分布式系统对服务器硬件要求很低Google对于数据中心的成本控制做到了极致:所有服务器一律不要机箱;主板完全定制,只要最基本的组件,早期的定制主板连电源开关和USB接口都不要;在主板上加装隔离带把CPU单独隔出来,让冷风只吹CPU,不吹内存、硬盘等不需要降温的组件,最大限度降低冷却电力消耗。分布式系统的特点2、分布式系统强调横向可扩展性塔式架构Scale-Up横向扩展Scale-Out天花板CPU内存硬盘云平台资源横向扩展提升每台服务器性能进而提升集群整体性能通过增加
3、服务器数量来提升集群整体性能分布式系统的特点2、分布式系统强调横向可扩展性比如有10台服务器组成的集群,横向扩展为100台同样服务器的集群,那么整体分布式系统性能会提升为接近原来的10倍。传统数据中心Pets模式竖井式硬件横向扩展困难现代数据中心Cattle模式通用硬件横向扩展VS.分布式系统的特点3、分布式不允许单点失效单点失效(SinglePointFailure)是指,某个应用服务只有一份实例运行在某一台服务器上,这台服务器一旦挂掉,那么这个应用服务必然也受影响而挂掉,导致整个服务不可用。廉价服务器不可靠随时发生故障提供高可靠服务分布式系统里运行的每个应用服务都有多个运行实例跑在多个节点
4、上,每个数据点都有多个备份存在不同的节点上.KeepAlivedHaproxy分布式系统的特点3、分布式不允许单点失效用户Web ServerGIS ServerDB Server心跳线心跳线心跳线心跳线心跳线心跳线负载均衡Web集群GIS集群DB集群共享存储VIPKeepAlivedHaproxy分布式系统的特点3、分布式不允许单点失效通常情况,不要让服务器满负荷运行,服务器长时间满负荷运行的话,出故障的概率显著升高。所以分布式系统采用一大堆中低性能的PC服务器,尽可能把负载均摊到所有服务器上,让每台服务器的负载都不高,保证集群整体稳定性。分布式系统的特点4、分布式系统尽可能减少节点间通讯开
5、销分布式系统由独立的服务器通过网络松散耦合组成的。每个服务器都是一台独立的PC机,服务器之间通过内部网络连接,内部网络速度一般比较快。因为分布式集群里的服务器是通过内部网络松散耦合,各节点之间的通讯有一定的网络开销,因此分布式系统在设计上尽可能减少节点间通讯。此外,因为网络传输瓶颈,单个节点的性能高低对分布式系统整体性能影响不大。分布式系统的特点4、分布式系统尽可能减少节点间通讯开销如前所述,分布式系统的整体性能瓶颈在于内部网络开销。目前网络传输的速度还赶不上CPU读取内存或硬盘的速度,所以减少网络通讯开销,让CPU尽可能处理内存的数据或本地硬盘的数据,能显著提高分布式系统的性能。典型的例子就是HadoopMapReduce,SuperMapiServer并行切图等把计算任务分配到要处理的数据所在的节点上运行,从而避免在网络上传输数据。分布式系统的特点5、分布式系统应用服务最好做成无状态的应用服务的状态是指运行时程序因为处理服务请求而存在内存的数据。有状态,一旦服务器宕机就会使得应用服务程序受影响而挂掉,那存在内存的数据也就丢失了.无状态,让程序把需要保存的数据都保存在专门的存储上内存Data存储Data内存Empty存储Data宕机重启超图研究院SuperMap GIS Technology Institute