架构师训练营—第四周学习总结
第四周的架构师训练营有两周时间,一定要坚持下去。
李老师讲述的淘宝等架构还是蛮有用的,特别是对于参加工作的人,在实践中可能更加会感同身受。
互联网系统面临的挑战
高并发,大流量:一般可以采用垂直伸缩和水平伸缩两种方案解决。垂直伸缩式指不断提高服务器硬件配置来增加服务器资源。水平伸缩是通过增加服务器的方法来添加服务器资源。
高可用:由于用户分布全球以及不同的地域和时区,需要保证系统 7×24 小时不间断服务。高可用一般是通过冗余来实现的。
海量数据:需要存储、管理海量数据,需要使用大量服务器。
用户分布广泛,网络情况复杂:许多大型互联网都是为全球用户提供服务的,用户分布范围广,各地网络情况千差万别,需要考虑到网络速度,网络阻断,不同网络运营商的环境等各种问题
安全环境恶劣。
需求快速变更,发布频繁。一般通过微服务设计来解决这类问题。
分布式架构演化
单一系统->应用与数据分离->使用缓存->应用集群->数据库读写分离->使用 CDN 和反向代理->使用分布式文件和分布式数据库系统->使用 NOSQL 和搜索引擎->对业务进行拆分->微服务和中台化->大数据和人工智能。
1. 单机部署
2. 动静分离
3. 应用集群化部署
4. 数据库读写分离
5. 引入搜索和缓存
6. 数据库分库和分表
7. 应用垂直拆分
8. 服务化架构
9. 引入消息队列
一个好的系统架构应该考虑如下因素:
高性能
高可用
安全
扩伸缩
可扩展
评论