集中和分布式的比较
1、集中式架构
- 成本高:硬件成本,并且有限制
- 灵活/兼容性弱:硬件平台兼容性差
- 伸缩/扩展性弱:增加减少麻烦
- 自主/安全性低:IOE三家垄断
- 业务恢复慢:故障或发布得停机
- 一致/可靠性高:单台机器搞起强一致性
- 运维易:机器少
2、分布式架构
- 成本低:廉价PC
- 灵活/兼容性强:服务器选择简单方便
- 伸缩/扩展性强:多加几台机的事情
- 自主/安全性高:国产技术,自主研发
- 业务恢复快:数据多份,容灾恢复优势
- CP/AP:网络故障较多,多以分区容忍P需满足,则可用和一致选一个
- 运维难:机器多,日志/数据分散,维护/监控困难(通过beta发布、分组发布、蓝绿发布等解决发布验证、灰度引流、快速回滚)
架构的演进
- 单体架构:应用、数据都存在同一台机器
- 分离应用和数据:应用放一台机器、数据库和文件也各自放一台(比如应用里接入阿里云存储,数据库连接信息是另一台服务器地址)
- 增加缓存:加入本地缓存和分布式缓存(涉及缓存一致性、缓存击穿、缓存雪崩、热点数据集中失效等问题)
- 负载均衡:服务集群部署,利用反向代理进行负载均衡实现高可用(nginx,这里后续发展加入LVS-传输层tcp和F5-硬件,还有机房级别的,涉及session共享、文件上传下载等问题)<