分布式系统

1. 什么是分布式系统

分布式系统是相对于单机系统或者是集中式系统的一个概念

1.1 集中式系统

集中式系统通常由一台性能超强的大型计算机来构成,构成一个中心节点,数据集中存储于这个中心节点上,并且整个系统的所有业务单元都集中部署在这个中心节点上,所有的业务逻辑都集中在这个中心节点上处理

这种集中式系统的最大特点就是结构简单,因为它一般是在一台高性能的单机节点上实现的。由于是单机部署,所以不用考虑各个节点之间的分布式协作问题,所有的逻辑都由这个节点一体化处理。也正是由于单机部署,导致整个单机系统庞大而复杂,难以维护,并且还会存在单点故障,扩展性差等问题。单机系统要扩展,只能选用性能更高的主机。单机性能总有上限,也不容易达到性能要求。

1.2 分布式系统

分布式系统可以看作是针对单机系统的瓶颈而产生的,采用的是“分治”的思想,将计算和存储分散到不同的网络节点上,彼此协调服务。可以给分布式系统下一个定义:分布式系统是硬件和软件都分布在不同的网络主机上,这些网络主机之间通过传递消息进行通信和协调,共同完成一个任务的系统

分散性:分布式系统中的节点都是独立运行的,并且可以在空间任意分布,而且可以随时变动。这种分散特性可以有效的提高分布式系统的可用性和伸缩性,并且具备很强的容错能力

并发性:分布式系统中有多个进程并发的运行,从而实现更高的性能

异构性:分布式系统中的节点可能具有不同的硬件和操作系统,甚至不同的进程可能有不同的编程语言完成

容错性:分布式系统可以通过备份、复制以及一些容错算法来避免单点故障,提高系统的可靠性

可扩展性:分布式系统可以灵活的增加和删减系统资源来适应不同的业务场景

透明性:分布式系统对外是无感知的,对用户而言感觉系统就是一个整体

2. 单机和集群以及分布式的关系

2.1 单机

单机其实很好理解,如上面集中式系统的图示,比如一个电商系统,最基本的需求,用户需要查看商品,所以需要对外提供商品服务,用户还需要查看物流信息,以及一些售后处理,所以系统还需要提供订单服务和物流服务。除了这些业务服务之外,系统还有一些提供基础功能的服务,比如文件服务,缓存服务等,在单机系统中这些服务都集中在一台机器上运行,这就是单机架构

2.2 集群

单机架构的缺陷和明显,就是单机硬件资源瓶颈,有限的单机资源无法支撑大的业务量。那既然一台机器不行,就用多台机器不就可以了嘛,这样就催生出了集群架构。所以集群可以认为是单机的多副本模式,将原本的单机系统复制多分部署在多台机器上,这样就构成了一个集群。每台机器就称为集群的一个节点,注意集群中的每个节点干的是相同的工作,提供的是相同的服务

在构建集群模式之后,很快就发现一个问题,当一个请求来到的时候,由于多个节点都是提供相同的服务,不可能这个请求在所有节点都跑一遍,那样就没有解决性能瓶颈问题了,只需要让这次请求打到某一个节点上,让这个节点来处理就可以了,这就是后面会详细讨论的负载均衡策略

2.3 分布式

集群的方式虽然可以有效解决单机资源瓶颈的问题,但是在单台机器上所有的业务都在一起,耦合度太高,这个系统庞大而复杂,维护起来也很麻烦。所以以应用系统的业务功能作为出发点,并将每个业务功能拆分成一个完全独立子系统,这些子系统之间通过传递消息进行通信和协调,共同完成一个任务的系统。可以看出,集群是相同应用的多备份部署,同一份代码,功能相同。而分布式是将业务拆成了不同的子业务,每个子业务有单独的服务部署,功能都不一样,这些子业务一起组成一个完整的系统。所以相比于集群,分布式的每个子系统是有区别的

上图所示就是一个分布式系统,并且是一个分布式集群,将电商业务拆成了多个服务部署到了不同的服务器上,并且订单服务,物流服务,还有商品服务都是集群化部署,部署了多份。当然这个例子只是为了说明分布式和集群的关系,现在真正的业务场景一般不会这样部署了,不会一台服务器部署一个应用服务,都是容器化多实例部署

分布式其实也存在不少的问题,比如在系统性能上,虽然提高了吞吐量,但是由于服务见的调用链,导致一次请求的路径变长了,有多段网络通信,所以导致响应时间肯定是延长的,所以对于一些响应时间要求很高的业务往往很少用微服务架构,比如在某些游戏领域,后台有的还是单体架构,只是用了集群模式。另外,由于分布式设计到服务拆分,其设计难度也加大了,对于系统故障的排查的难度也比单体上有所增加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值