第四周作业与总结
作业1: 一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
中国互联网大致划分三个阶段:
1994-2000年 从四大门户到搜索;
2001-2009年 从搜索到社交化网络;
2010-2018年 移动互联网和自媒体。
下一个时代又是一个万物互联的时代
引言:
因为摩尔定律,CPU计算越来越快,服务器也越来越快。硬件的进步,带来软件行业的蓬勃发展。中国过去十多年发展蓬勃,出现了很多优秀的互联网企业。随着业务迭代速度越来越快,需要更多持续交付的能力,业务越来越复杂,需要更稳定,性能更好的系统做支撑,随着日访问量增加,更需要解决高并发的问题。因为逐步迭代的过程,用户量也逐步攀升的过程,所以大型的互联网公司,都是渐进式发展模式。
典型的互联网发展演变:
以下来自学习的总结
第一阶段:单体应用架构
一台物理机部署一个应用,主要包含数据库,应用程序,文件服务器
主要解决问题: 业务量少,用户少使用情况, 可以进行完整的体现一个应用的流程, 适合初创企业业务刚增长的时候。
第二阶段: 数据与应用分离
三台物理机: 一台物理机部署应用,另外一台物理机部署数据库,另外一台部署文件服务器
主要解问题: 当随着业务增长,用户访问量增多,一套物理机负载能力有限,应该把物理机应用与数据进行拆分开,提升单台机器的负载能力
第三阶段: 增加分布式缓存
从第二阶段的基础上,增加本地缓存,增加分布式缓存服务器
主要解决问题: 减少频繁数据请求,减少数据库读写压力, 减少网络带宽请求,减少服务器的访问量,从而让服务器负载减少
第四阶段:增加集群服务器
从第三阶段基础上,增加负载均衡服务协调多个应用服务器,负载均衡服务根据用户请求量,进行分发到对应的应用服务器上
主要解决问题: 并发量增多,单台应用服务器承载不了,通过多台物理机部署一个应用,再配合负载均衡服务器让应用使用最大化,从而得到服务器并发能力提升。
常用的负载均衡技术: LVS、Nginx、HAProxy
第五阶段: 数据库读写分离
从第四阶段的基础上, 分离单个数据库的读写功能,增加主副数据库服务器,主数据库负责写入数据,副数据库,主要负责读操作,而且通过主副数据库进行数据同步功能。分库分表,水平拆分与垂直拆分
主要解决问题: 随着第四阶段解决高并发问题,但是数据库压力增大,所以需要进行拆分,从而增加数据库的读写速度。
第六阶段: 反向代理与CDN部署
从第五阶段基础上,通过在全国各个地方部署更多的CDN服务
主要解决问题: 当业务量超过原来地区之外,扩充到各个省市区,网络传送时间过长,由此为了让不同地区的用户访问速度得到提升,所以需要在各个地区的运营商合作部署CDN服务,用户通过访问就近的CDN获取数据
反向代理,例如NGINX, 部署在服务器机房,可以通过缓存静态资源,让用户直接通过缓存获取,从而增加获取数据的速度。
第七阶段: 分布式文件系统与分布式数据库
基于第六阶段衍生,增加分布式文件系统,增加分布式数据库
解决问题: 主要因为从用户层面产生的数据越来越多,需要增加更多的分布式文件系统与分布式数据库来解决存储与访问数据速度的问题。
第八阶段: Nosql 和搜索引擎
基于第七阶段衍生,增加Nosql 和 搜索引擎
主要解决问题:
Nosql ,例如MONGODB, REDIS, 对比传统的关系型数据库而言,有着大数据量,高扩展性,高性能,灵活,高可用的特点, 再着增加了搜索引擎,对于应用程序而言,不需要再通过实时的查询一些数据库上的数据,而是提前通过搜索引擎爬虫,把数据提前检索,当应用发生搜索,就可以提升搜索速度。
第九阶段: 应用服务的拆分
通过第八节段衍生,把一个潘大的应用拆分的功能更单一的应用
主要解决: 潘大的应用构建越来越复杂,部署时间越来越长,一个应用臃肿, 复用性差,把应用拆分成多个独立的业务的应用,通过消息进行通信与共享。
第十节段: 微服务与中台化
主要解决问题: 在多个独立的应用会有一些复用的服务,所以利用分布式技术再把一些公共的服务做拆分,为了提升多个业务线的敏捷,创新,解耦,引入了中台,通过中台集成多种公用服务。
....
作业2-总结:
互联网架构模式:通过架构模式,可以使架构师有一个对于重复性工作的解决方案
1、分层
2、分割
3、分布式
4、集群
5、缓存
6、异步、消息队列
7、冗余
8、自动化
9、安全
评论