一、什么是分布式系统?
分布式系统指的是将一个系统拆分为多个子系统,每一个子系统单独对外提供各自负责的功能。
比如在电商系统中,就可以分为几个功能模块:
- 订单模块
- 商品模块
- 支付模块
- 购物车模块
- …
二、分布式系统的优缺点
优点:
- 可扩展性:可以横向增加机器数量,来支持并发流量
- 可用性:其中一个机器/系统出问题了,不会影响其他的机器/系统,仍然可以正常对外提供服务
- 高并发:多机部署,可以通过负载均衡分发到合理的机器处理,提升系统吞吐量
缺点:
- 数据一致性:考虑不同机器之间数据同步,可能由于并发、宕机等问题导致数据不一致
- 网络通信延迟:相比机器内通信,网络通信延迟要搞出很多
- 管理复杂度:机器越多越难管理(负载均衡、日志监控等)
三、Q&A
1、分布式和集群有什么区别?
- 分布式:指在多台不同的机器上部署不同的服务模块,通过远程调用协同工作,对外提供服务
- 集群:指在多台不同的机器上部署相同的服务模块,组成一个集群,通过负载均衡,对外提供服务