系统大PK:集中式VS分布式,计算机世界的格斗之战

什么是集中式系统?

集中式系统是指把整个系统的所有功能,比如数据库、缓存等这些全都部署在一起,然后通过整套系统对外提供服务。但是集中式系统存在大而复杂、难以维护、容易发生单点故障、扩展性比较差等问题。然而这些问题在分布式系统中就可以很好地解决。

什么是分布式系统?

分布式系统是相对相对于集中式系统而言的,分布式系统是指将一个集中式的系统拆分成多个系统,然后每一个系统单独对外提供部分功能,整个分布式系统整体对外提供一整套服务。但是对于访问分布式系统的用户来说,其感知就如同在访问一台计算机一样。

分布式系统即通过利用多台普通计算机(相对于昂贵的大型机)组成分布式集群,对外提供系统服务。随着计算机台数的增加,CPU、内存、存储资源等计算机资源也不断变多,该系统可以处理的并发访问量也就越大,但是随之而来也带来了一些问题,由于是集群部署,不是在一台机子上,所以该系统可能存在许多问题,如网络通信延迟、数据一致性等问题。

这里我们拿一个电商网站来举例(主要是电商网站一般功能比较齐全,很多场景都能学习到),我们这里把这个电商系统拆分成多个子系统,比如订单系统、购物车系统、物流系统、支付系统等。我们把不同的模块部署到不同的机器上,各个模块之间通过RPC(Dubbo、gRPC)即远程服务调用等方式进行通信,然后以一个分布式系统的方式对外提供服务。

分布式与集群之间的区别?

分布式(Distributed) 是指在多台不同的服务器中部署不同的服务模块, 通过远程调用的方式相互之间进行协同工作,然后对外提供服务。

集群(cluster) 是指在多台不同的服务器中部署相同的应用或者服务模块,构成一个集群,通过请求负载均衡的方式对外提供服务。

那如何理解集群与分布式之间的区别呢?你可以通过一个案例来理解,集群的话就是一个组织里的所有人都干同一件事情,比如,百度搜索,这个在每个人的电脑上其都是一样的,主要负责搜索的业务,而分布式就是指一个团队中每部分人负责一部分的内容,比如阿里里面,有些人负责淘宝业务的内容,有些人负责阿里云业务·······每部分人负责的业务有所差异,这种就是分布式。

分布式系统的特征

分布式系统需要各个主机之间通信和协调主要通过网络进行,所以,分布式系统中的计算机在空间上几乎没有任何限制,这些计算机可能被放在不同的机柜上,也可能被部署在不同的机房中,还可能在不同的城市中,对于大型的网站甚至可能分布在不同的国家和地区。

但是,无论空间上如何分布,一个标准的分布式系统应该具有以下几个主要特征:

  1. 分布性

分布式系统中的多台计算机之间在空间位置上可以随意分布,系统中的多台计算机之间没有主、从之分,即没有控制整个系统的主机,也没有受控的从机。

  1. 透明性

系统资源被所有计算机共享。每台计算机的用户不仅可以使用本机的资源,还可以使用本分布式系统中其他计算机的资源(包括CPU、文件、打印机等)。

  1. 同一性

系统中的若干台计算机可以互相协作来完成一个共同的任务,或者说一个程序可以分布在几台计算机上并行地运行。

  1. 通信性

系统中任意两台计算机都可以通过通信来交换信息。

相比集中式系统,分布式系统有什么优势与不足?

和集中式系统相比,分布式系统的性价比更高、处理能力更强、可靠性更高、也有很好的扩展性。但是,分布式在解决了网站的高并发问题的同时也带来了一些其他问题。

  1. 分布式的必要条件就是网络,这可能对性能甚至服务能力造成一定的影响。
  2. 一个集群中的服务器数量越多,服务器宕机的概率也就越大。
  3. 由于服务在集群中分布式部署,用户的请求只会落到其中一台机器上,所以,一旦处理不好就很容易产生数据一致性问题。
相关推荐
躺不平的理查德1 小时前
General Spark Operations(Spark 基础操作)
大数据·分布式·spark
talle20211 小时前
Zeppelin在spark环境导出dataframe
大数据·分布式·spark
渣渣盟1 小时前
大数据开发环境的安装,配置(Hadoop)
大数据·hadoop·分布式
Angindem2 小时前
SpringClound 微服务分布式Nacos学习笔记
分布式·学习·微服务
龙仔72510 小时前
离线安装rabbitmq全流程
分布式·rabbitmq·ruby
〆、风神12 小时前
Spring Boot 整合 Lock4j + Redisson 实现分布式锁实战
spring boot·分布式·后端
胡萝卜糊了Ohh14 小时前
kafka
分布式·kafka
桑榆080616 小时前
Spark-Streaming核心编程
大数据·分布式·spark
nbsaas-boot17 小时前
分布式微服务架构,数据库连接池设计策略
分布式·微服务·架构