分布式技术的体系结构

 

横向划分:分布式资源池化、分布式通信、分布式数据存储与管理、分布式计算。这样的划分符合业务架构设计的一般规律,即"在一定资源上,进行一定通信,通过一定计算,完成一定数据的加工和处理,从而对外提供特定的服务"。这样的划分符合业务架构设计的一般规律,即"在一定资源上,进行一定通信,通过一定计算,完成一定数据的加工和处理,从而对外提供特定的服务"。

纵向划分:在分布式环境下,无论是资源、通信、数据还是计算,都需要去解决协同、调度、追踪高可用,还有部署的问题。因此,我从横向的技术层次中,提炼出分布式协同、分布式调度、分布式追踪与高可用、分布式部署 4 个纵向技术线。

 

分布式的发展历史

 

单机模式

 

应用程序和数据均部署在一台电脑或服务器上,由一台计算机完成所有的处理。

以铁路售票系统来说,应用模块包含用户管理火车票管理订单管理。数据包括了用户数据火车票数据订单数据。所有这些应用和数据均由一台计算机处理完成。

优点:数据存储、请求处理均由该计算机完成。功能、代码和数据集中,便于维护、管理和执行。

缺点:单个计算机的处理能力取决于 CPU 和内存等硬件,但硬件的发展速度和性能是有限的,而且升级硬件的性价比也是我们要考虑的,由此决定了 CPU 和内存等硬件的性能将成为单机模式的瓶颈。

 

数据并行或数据分布式

 

并行计算:采用消息共享模式使用多台计算机并行运行或执行多项任务,核心原理是每台计算机上执行相同的程序,将数据进行拆分放到不同的计算机上进行计算

在单机模式中,应用和数据均在一台计算机或服务器上,要实现数据的并行,首先必须将应用和数据分离以便将应用部署到不同的计算机或服务器上;然后,对同类型的数据进行拆分,比方说,不同计算机或服务器上的应用可以到不同的数据库上获取数据执行任务。

对于铁路售票系统来说,根据线路将用户、火车票和订单数据拆分到不同的数据库中,部署到不同的服务器上,比如京藏线的数据放在数据库服务器 1 上的数据库中,沪深线的数据放在数据库服务器 2 上的数据库中。

优点:可以利用多台计算机并行处理多个请求,使得我们可以在相同的时间内完成更多的请求处理,解决了单机模式的计算效率瓶颈问题。

缺点:1.如何进行比较均衡地转发调度到对应的应用服务器上2.数据库的读写IO能力存在瓶颈,需要进行对数据库的读写分离3.热点数据访问能力,需借助缓存实现4.对于单个请求特别复杂,并行计算无法解决问题

 

任务并行或任务分布式

 

将单个复杂的任务拆分为多个子任务,从而使得多个子任务可以在不同的计算机上并行执行。

以铁路售票系统为例,任务并行首先是对应用进行拆分,比如按照领域模型将用户管理、火车票管理、订单管理拆分成多个子系统分别运行在不同的计算机或服务器上。换句话说,原本包括用户管理、火车票管理和订单管理的一个复杂任务,被拆分成了多个子任务在不同计算机或服务器上执行。

优点:一个任务被拆分为多个子任务,多个子任务可以在多台计算机上运行,因此通过将同一任务待处理的数据分散到多个计算机上,在这些计算机上同时进行处理,就可以加快任务执行的速度

缺点:设计上复杂且大型业务拆分存在困难

分布式是什么?

 

分布式其实就是将相同的或相关的程序运行在多台计算机上,从而实现特定目标的一种计算方式;产生分布式的最主要的驱动力量是我们对于性能、可用性以及扩展性的追求。

 

衡量分布式系统的指标

 

性能指标

 

不同的系统、服务关注的性能指标不尽相同,常见的性能指标,包括吞吐量、响应时间和完成时间。

吞吐量:指系统在一定时间内可以处理的任务数。常见的吞吐量指标有QPS 、TPS 和BPS。

QPS:系统每秒处理的查询次数,常用于核量读操作较多的业务类型;

TPS:系统每秒处理的事务数,常用于核量写操作较多的业务类型;

BPS:系统每秒处理的数据量(比特);

响应时间:系统响应一个请求或者输入需要花费的时间。该指标直接影响用户体验,对于时延敏感的业务非常重要。

完成时间:系统真正完成一个请求或者输入花费的时间。

 

资源占用

 

系统提供正常能力需要占用的硬件资源。比如CPU、内存、硬盘等。一般来说,一个系统在没有任何负载时的资源占用叫做空载资源占用,一个系统满额负载时的资源占用叫做满额资源占用。

通常情况下,资源占用越少,说明系统设计的越好。

 

可用性

 

系统在面对各种异常时可以正确提供服务的能力。是分布式系统的重要指标,是系统容错能力的体现。

系统可用性的衡量方式有几种,一种是系统停止服务的时间与总的运行时间之比衡量,另外一种是某功能的失败次数与总的请求次数之比衡量。一般厂商宣传提到的几个9,意思就是可用性能达到99.99…%。

 

可扩展性

 

系统通过扩展集群的机器规模提高系统的性能(吞吐、响应时间、完成性能、存储容量)。对于分布式系统来说,可扩展性是最为重要的特性之一,从单机方式引入分布式,就是为了利用集群多机的能力处理单机无法解决的问题。

对于扩展来说,一般可分为垂直/纵向扩展和水平/横向扩展。垂直扩展指的是增加单机的硬件能力,如CPU增强、内存增大等;水平扩展指的是增加计算机数量;好的分布式系统追求"线性扩展",即某一指标随集群中的机器数量增长。

衡量系统可扩展性的常见指标为加速比,就是系统进行扩展后相对扩展前的性能提升;

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/yurongfeng/p/14885004.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!