分布式系统
✅ 什么是分布式系统?
📘 定义:
分布式系统是由多个独立的计算节点组成的系统,这些节点通过网络通信,协同完成一项任务,对外表现为一个统一整体。
🧠 举个简单的例子:
想象一个大型网站,比如京东或淘宝:
-
有 多个服务器:一个处理登录,一个处理下单,一个处理支付;
-
用户访问它们时,感觉是在用一个网站;
-
实际上,它们是在 不同的机器、不同的地点 协同工作的。
这就构成了一个分布式系统。
🎯 分布式系统的主要目标
|
目标 |
说明 |
|---|---|
|
可扩展性 |
可以根据业务增长,增加机器 提升性能 |
|
高可用性 |
即使某些节点故障,系统仍能继续提供服务 |
|
容错性 |
节点故障时系统能自动切换/恢复 |
|
一致性 |
多个节点数据应保持一致(根据业务需求强一致或最终一致) |
|
高性能 |
可分担请求压力,提高响应速度 |
🔧 分布式系统的典型组成模块
|
模块 |
示例 |
|---|---|
|
服务注册与发现 |
Nacos, Zookeeper, Consul |
|
通信机制 |
REST、RPC、Kafka、gRPC |
|
数据存储 |
分布式数据库(MySQL分库分表、TiDB)、Redis集群 |
|
分布式锁 |
Redis、Zookeeper |
|
分布式事务 |
2PC, TCC, 本地消息表 |
|
配置中心 |
Apollo、Nacos |
|
调用链追踪 |
Zipkin, SkyWalking |
📌 分布式系统 VS 集中式系统
|
特性 |
集中式系统 |
分布式系统 |
|---|---|---|
|
部署 |
单台服务器 |
多台服务器 |
|
可扩展性 |
差 |
优秀 |
|
单点故障 |
高风险 |
可以避免(高可用架构) |
|
成本 |
低(初期) |
高(后期投入、复杂度) |
✅ 面试简答模板(适合背诵):
分布式系统是一种将多个独立节点通过网络连接起来,协同完成任务,对外表现为一个统一整体的系统。它的目标是实现系统的高可用、高性能、可扩展和容错能力。常见场景包括大型网站、金融系统、分布式存储等。
浙公网安备 33010602011771号