架构师训练营第四周”系统架构“作业
Q:一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
A:根据自己的理解画了一个大型互联网应用的架构图如下:
A:通过 CDN 与反向代理直接缓存静态资源,可以拦截大部分网络流量
B:通过 Nginx 等工具将不同请求路由到不同应用集群,同时负责负载均衡
整个服务大体分三层:前台应用、中台服务、后台基础设施。各层直接可以通过 RPC、HTTP、消息总线消息队列等(L)相互调用、通信
C:前台应用拆分,各类服务独立部署,功能单一方便伸缩
D:应用内部利用缓存加速,可以使用本地缓存、也可以使用基础设施中的分布式缓存
E:中台服务,公共服务微服务化作为基础设施,供前台应用直接使用。各微服务独立部署,向上提供 RPC 接口。
F:后台基础设施
随着数据规模增大,单一数据库不能满足存储需求,传统方法是分库分表,随着分布式数据库技术成熟,可以直接使用,降低开发成本
对于一些特殊的数据,比如宽表、无事务需求等数据,可以直接使用 NoSql 数据库
搜索引擎可以加快数据查找速度,可用于搜索功能
G 存储层面也保留了传统数据库,多种方案混合使用
H:大数据平台,业务数据通过数据收集组件,传往大数据(I)平台存储
J:大数据平台对基础数据进行统计、挖掘,产生(K)各类报表、个性化推荐等
M:所有的服务、系统、工具等的部署、监控,都需自动化运维
以上更多从水平伸缩角度谈系统架构,针对单个的核心应用,可以采用垂直伸缩方式,典型如核心数据库磁盘采用 SSD,核心服务采用更高性能服务器等。
评论