架构师训练营第一期 - 第四周学习总结

用户头像
卖猪肉的大叔
关注
发布于: 2020 年 10 月 16 日

从维基百科、淘宝及宅米网的技术架构发展案例可以看出:任何一个系统或者软件产品的架构都是渐进式发展的。一开始都是简单的单体架构,仅仅满足用户的业务需求即可。在这个阶段主要是为了验证商业模式,如果商业模式成功吸引了用户开展了业务,随着用户规模的扩大,开始搭建的系统就不能满足用户的并发请求了。为了满足更高的并发请求,解决系统瓶颈的技术方向有两个,一是垂直扩展:通过增强单体硬件的能力来提高系统的处理能力,而是水平扩展:通过增加服务器的数量来提升系统处理能力。在业务发展期,为了快速满足业务需求,会采用垂直扩展的方式,但这只是治标不治本的方案。从长远来看,采取水平扩展的方式才是发展之道。水平扩展必然会需要架构的调整,但是架构的调整也不是一步到位的,是根据用户的并发请求及业务的发展变化来逐渐演化扩展的。从一个系统整体上来看(抛开业务发展开发的新应用),其压力主要来自于用户请求的增多(并发增加),直接反应出来的就是服务器处理能力不足。因此,架构的演进也是从这个方面去应对的。

1.开始可能只是简单的做应用和数据拆分,将数据库拆分到不同的服务器上,代码基本不用改;

2.增加缓存减少数据库处理压力,不必每次用户请求都需要数据库处理,因为数据库IO是很昂贵的资源;

3.应用服务器集群化并采用负载均衡技术,将业务应用部署在不同的多台服务器上,将用户请求流量均衡路由到不同服务器;

4.对数据进一步做读写分离处理,采用主备模式,主负责写、备负责读,从而进一步提升数据库的处理能力;

5.随着用户规模越来越大、用户请求并发越来越高,采用CDN及反向代理技术将静态数据访问流量放到离用户更近的地方,尽可能将流量拦截在应用系统之外;

6.使用分布式数据库或分布式NOSQL数据库对数据进行分片处理,更进一步提升数据库的处理能力;

7.随着业务发展,业务应用越来越多使系统交叉耦合在一起,按业务对系统进行拆分,不同的业务拆分成不同的应用部署到不同的服务器,降低系统耦合提升系统性能;

8.采用微服务架构重构系统,同时配合docker、k8s容器技术,完成支持高并发处理的“三高”系统;

9.最后通过大数据及人工智能技术对系统架构进行补充增强,不止完成“千人千面”的业务营销及推荐目标,同时也让系统能够进行自动化甚至智能化的运维管理;



用户头像

卖猪肉的大叔

关注

还未添加个人签名 2019.01.15 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第一期-第四周学习总结