架构师训练营 -week4- 学习总结
这一周主要概述互联网架构面临的挑战与对应的解决方案以及互联网架构模式,大部分是概念性的东西,背背更能装逼哦!
插个小前提:
由于数据库身兼多职,对接的下家磁盘速度又慢,脆弱点脾气暴躁也正常,所以一定要珍之重之,小心对待。千万不要给它太大的压力,不然分分钟宕机闹死自己。
互联网系统面临的挑战:
高并发、大流量、高可用(提供 7*24 小时服务)、海量数据、用户分布广泛、网络情况复杂、网络安全环境恶劣、需求变更快、发布频繁。
在遇到性能瓶颈的时候怎么办?
大体来说有两种解决方案:垂直伸缩(升级硬件,成为更高级的氪金玩家)、水平伸缩(平民技术流)。
垂直伸缩到中后期对单体硬件的要求越来越高,价格越来越高,而水平伸缩到中后期则平平稳稳以量取胜。(大家为了省钱还是挺拼的)
互联网应用系统的架构演化:
初始阶段:
一台应用服务器部署应用程序、数据库,并保存文件。
第一阶段:
一台服务器承担并发与读写果然还是太勉强了。
→ 应用与数据分离。
第二阶段:
用户访问量大,频繁向数据库读数据,数据库忙不过来了。
→ 用缓存改善系统性能。
第三阶段:
用户访问请求大到超出了应用服务器的并发处理能力。
→ 用应用服务器集群改善系统的并发处理能力。
第四阶段:
缓存失效时,叠加到数据库的读写压力太大,数据库再次忙不过来了。
→ 数据库读写分离
第五阶段:
用户分布广泛,网络环境难以把控,请求的响应时间变长。
→ 使用反向代理和 cdn 技术
第六阶段:
数据量已经多到读写单表吃力。
→ 使用分布式文件系统和分布式数据库系统。
第七阶段:
有很多的静态数据、历史数据,从关系数据库中读取,太浪费资源。
→ 使用 NoSQL 和搜索引擎
第八阶段:
系统很庞大,单个几十人的团队难以维护。
→ 拆分业务,拆分团队。
第九阶段:
多个子系统需要用到公共组件(例如登录模块),公共组件维护困难。
→ 微服务及中台化。
互联网应用的架构模式:
1、 横向分层
2、 纵向分割
3、 分布式(分层、分割是为了更好地分布式部署)
4、 集群(把多台部署相同应用的服务器集群化,对外提供服务)
5、 缓存
6、 异步(将系统解耦,业务分段,避免同步调用)
7、 冗余(服务器冗余运行、数据库冗余备份,保证部分服务器宕机时仍可对外提供服务)
8、 自动化(无人值守的情况下,网站能正常运行,目前主要用在运维上)
9、 网络信息安全(各种校验码、协议加密、垃圾或敏感信息过滤等)
用于衡量互联网系统架构的核心要素:
1、 高性能
2、 高可用
3、 可伸缩(集群化是否容易、是否有限制、且是否提供与集群之前一样的服务)
4、 可扩展(是否易于扩展新业务)
5、 安全
版权声明: 本文为 InfoQ 作者【晓-Michelle】的原创文章。
原文链接:【http://xie.infoq.cn/article/754d33dbc54013785a6957604】。未经作者许可,禁止转载。
评论