一、大型互联网项目架构目标
互联网项目特点
- 用户多
- 流量大,并发高
- 海量数据
- 易受攻击
- 功能繁琐
- 变更快
- 高性能:提供快速的访问体验。
衡量网站的性能指标:
- 响应时间:指执行一个请求从开始到最后收到响应数据所花费的总体时间。
- 并发数:指系统同时能处理的请求数量。
- 并发连接数:指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器连接的总TCP数量
- 请求数:也称为QPS(Query Per Second) 指每秒多少请求.
- 并发用户数:单位时间内有多少用户
- 吞吐量:指单位时间内系统能处理的请求数量。
- QPS:Query Per Second 每秒查询数。
- TPS:Transactions Per Second 每秒事务数。
一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
一个页面的一次访问,只会形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,就会有多个QPS
QPS >= 并发连接数 >= TPS
大型互联网项目架构目标
- 高性能:提供快速的访问体验。
- 高可用:网站服务一直可以正常访问。
- 可伸缩:通过硬件增加/减少,提高/降低处理能力。
- 高可扩展:系统间耦合低,方便的通过新增/移除方式,增加/减少新的功能/模块。
- 安全性:提供网站安全访问和数据加密,安全存储等策略。
- 敏捷性:随需应变,快速响应
二、集群和分布式
单体服务
集群
集群分布式
小结
集群:很多“人”一起 ,干一样的事。
一个业务模块,部署在多台服务器上。
分布式:很多“人”一起,干不一样的事。这些不一样的事,合起来是一件大事。
一个大的业务系统,拆分为小的业务模块,分别部署在不同的机器上。
三、架构演进
架构演进图
架构演进–单体架构
架构演进–垂直架构
架构演进–分布式架构
架构演进–SOA架构
架构演进–微服务架构
微服务架构是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想