1 分布式
1.1 介绍
分布式是指通过网络连接多个组件,通过交换信息协作的系统;集群是指同一个组件的多个实例。
1.1.1 系统发展的历程
-
集中式Web应用
数据库、war包、文件在同一台机器上
优点: 发布便捷,运维工作量小
缺点:服务器宕机整个服务都不能进行访问
适用:小型项目
-
应用与文件、数据库分离
因数据和文件越来越多,单个机器容量有限,所以分离
-
引入缓存和集群
并发量上去后,单台服务器支撑不了太多请求
- 缓存:把大量读请求引导到缓存,减轻数据库压力
- 集群:负载均衡,减轻单机的压力
-
数据库读写分离,提供反向代理及CDN
大多数互联网应用,都是读大于写,读写会相互竞争,往往写操作会受到影响,导致数据库出现瓶颈。
CDN,将静态资源等内容缓存到数据中心(IDC), 提高数据请求的速度
-
分布式数据库与分布式文件系统
1.1.2 特性
- 可扩展
- 可用性和可靠性
- 高性能
- 一致性
1.1.3 分布式系统常见问题
- 网络没那么可靠
- 节点故障
1.2 分布式中间件
-
Redis
-
RabbitMQ
-
ZooKeeper
分布式应用程序的协调服务
ZooKeeper 与 Eureka比较