架构师训练营 0 期第四周
作业
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
CDN:访问加速、数据缓存等
反向代理、负载均衡:流量分摊,水平扩展
缓存:包括CDN缓存、Nginx缓存、内存缓存、分布式缓存等,降低应用、DB负载,提高系统吞吐、响应
分布式锁:高并发下的资源访问控制
消息队列:满足生成消费需求,异步化,消除系统峰值,解耦
数据库:包括主从集群读写分离、分库分表、冷热分离、代理、连接池,减少IO连接、查询量,提升TPS
NoSQL、搜索引擎:降低DB数据库查询操作复杂度和压力
大数据平台:减少应用内计算密集型逻辑
网络通信协议:提供分布式系统通信能力
ELK、链路等:分布式系统日志、问题排查等解决方案
灾备:高可用性
总结
架构演化阶段
第一阶段:应用数据分离
第二阶段:使用缓存改善系统性能
第三阶段:使用应用服务器集群改善系统的并发处理能力
第四阶段:数据库读写分离
第五阶段:使用反向代理和CDN加速网站响应
第六阶段:使用分布式文件系统和分布式数据库系统
第七阶段:使用NoSQL和搜索引擎
第八阶段:业务拆分
第九阶段:微服务及中台化
第十阶段:大数据和智能化
架构模式
分层
分割
分布式
集群
异步
冗余
自动化
如何衡量一个系统的架构设计
高性能
高可用
可伸缩
可扩展
评论