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

什么是集中式系统?

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

什么是分布式系统?

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

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

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

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

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

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

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

分布式系统的特征

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

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

  1. 分布性

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

  1. 透明性

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

  1. 同一性

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

  1. 通信性

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

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

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

  1. 分布式的必要条件就是网络,这可能对性能甚至服务能力造成一定的影响。
  2. 一个集群中的服务器数量越多,服务器宕机的概率也就越大。
  3. 由于服务在集群中分布式部署,用户的请求只会落到其中一台机器上,所以,一旦处理不好就很容易产生数据一致性问题。
相关推荐
海棠Flower未眠9 小时前
下单请求处理流程:商品维度分布式锁与 Redis 预扣库存
redis·分布式·junit
罗四强11 小时前
第10篇:打包上架:签名、打包 HAP、发布到华为应用市场
分布式·操作系统·harmonyos·arkts·鸿蒙系统
秋饼11 小时前
Redis 全面解析:从数据结构到主从/哨兵/集群、分布式锁与面试高频考点,代码到原理一次讲透
数据库·redis·分布式·面试·后端开发
二月夜11 小时前
Redis 高频面试题全解:缓存三大问题、大 key 治理与分布式锁之争(2026 招聘 JD 真题复盘)
redis·分布式·后端·缓存
樱花落木兰11 小时前
Redis 消息队列的可靠性演进:从 List、Pub/Sub 到 Stream 消费者组,以及 8.x 版本改变了什么
java·开发语言·经验分享·redis·分布式·python·软件工程
真上帝的左手13 小时前
12. 消息队列-Kafka进阶
分布式·中间件·kafka
Thanks_ks1 天前
Cookie 和 Session 到底是什么关系——登录态是怎么维持的
分布式·http·jwt·cookie·session·后端开发·登录态
Sayai1 天前
Kafka 跨数据中心日志同步实战:MirrorMaker 2 选型对比 + Flink 中继任务落地(双中心互备与消费者组隔离避坑)
大数据·运维·分布式·flink·kafka·消息队列·高可用
CodeGL2 天前
开源的分布式任务调度平台:XXL-Job
分布式·开源
一条泥憨鱼2 天前
【Kafka】零基础学习教程
java·分布式·学习·kafka