架构师训练营第 1 期 - 第四周作业提交
作业一:
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
静态文件和CDN
将前端生成的JS文件和图片等静态文件存储到分布式存储文件系统中,并分发到CDN服务器.可以大幅度提高响应速度.
应用服务器集群
将应用服务器和数据服务器,和上述的分布式文件服务器独立并增加LB(负载均衡服务器),进行请求转发,将用户请求平均打到应用服务器集群里,能提高系统吞吐量,
分享一个我们系统目前采用的架构:
数据读写分离
将数据拆分到多个库中,一个主库负责写入,多个从库负责读取,能降低主库压力.
增加缓存
在应用服务器侧,增加本地缓存,全局增加分布式缓存服务器,能提升系统响应速度
使用NoSQL和搜索引擎
针对一些适合NoSQL存储的文件存放NoSQL数据库中,分担数据库系统压力.
使用搜索引擎应用服务器提供更快的搜索速度.
业务拆分
将系统的业务按照业务分类或者其它方式拆开到不同的子系统中,各个子系统各司其职,系统之间使用消息队列或者RPC调用.
微服务以及中台化以及自动化
将上述各个子系统进行进一步细化拆分,比如利用DDD思路,将业务从水平方向进行拆分重组,单个业务提供微服务,再使用中台模型进行重组.
使用k8s进行服务编排,实现部分运维自动化.
大数据与智能化
将数据进行整合和分析,通过目前的BI,AI等手段进行数据分析,从而反向指导业务.
监控
我们的课程中似乎并没有讲,不过我觉得这个部分也是一个不可或缺的模块,当我们的业务量足够大了,在系统即将到达临界值,甚至业务不可用等情况,要第一时间通过监控系统预先或者实时发现,然后投入人力去解决.
评论