1.主流的互联网技术特点
分布式 、高并发、集群、负载均衡、高可用(故障转移)。
分布式:一件事情拆开来做。
集群:一件事情大家一起做。
负载均衡:将请求平均分配到不同的服务器中,达到均衡的目的。
这里强调两点:
高并发:同一时刻,处理同一件事情的处理能力(解决方案:分布式、集群、负载均衡)
高可用:系统都是可用的。实现故障转移
2.架构演变的过程
2.1单一应用架构(all in one)
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
-
架构优点:
架构简单,前期开发成本低、开发周期短,适合小型项目(OA、CRM、ERP 企业内部应用)。
-
架构缺点:
全部功能集成在一个工程中
(1)业务代码耦合度高,不易维护。
(2)维护成本高,不易拓展
(3)并发量大,不易解决
(4)技术栈受限,只能使用一种语言开发。
2.2 垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。
-
架构优点:
(1)业务代码相对解耦
(2)维护成本相对易于拓展(修改一个功能,可以直接修改一个项目,单独部署)
(3)并发量大相对易于解决(搭建集群)
(4)技术栈可扩展(不同的系统可以用不同的编程语言编写)。
-
架构缺点:
功能集中在一个项目中,不利于开发、扩展、维护。
代码之间存在数据、方法的冗余
2.3 分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键
-
架构优点:
(1)业务代码完全解耦,并可实现通用
(2)维护成本易于拓展(修改一个功能,可以直接修改一个项目,单独部署)
(3)并发量大易于解决(搭建集群)
(4)技术栈完全扩展(不同的系统可以用不同的编程语言编写)。
-
架构缺点:
缺少统一管理资源调度的框架
2.4 流动计算架构(SOA)
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键
资源调度和治理中心的框架:dubbo、spring cloud
- 架构优点:
(1)业务代码完全解耦,并可实现通用
(2)维护成本易于拓展(修改一个功能,可以直接修改一个项目,单独部署)
(3)并发量大易于解决(搭建集群)
(4)技术栈完全扩展(不同的系统可以用不同的编程语言编写)。
(5)框架实现了服务治理,不去担心集群的使用情况(失败会尝试其它服务…)