当网站规模达到了一定量级的时候,普通的MVC框架已经不能满足我们的需求了,于是分布式的服务框架和流动式的架构就凸显出来了.


1.1 单一应用架构(ORM)

当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本.
缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护.
1.2 垂直应用架构(MVC)

垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的体积可控,一定程度上降低了开发人员之间协同以及维护的成本,提升了开发效率.
缺点:但是在垂直架构中相同逻辑代码需要不断的复制,不能复用.
1.3 分布式应用架构(RPC)

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心.
RPC(Remote Procedure Call Protocol):远程过程调用. 两台服务器A、B,分别部署不同的应用a,b.当A服务器想要调用B服务器上的应用b提供的函数或方法的时候,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义传达调用的数据.
RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在ISO网络通信模型中,RPC跨越了传输层和应用层,RPC使得开发包括网络分布式多程序在内的应用程序更加容易.
RPC采用客户机/服务器模式,请求程序就是一个客户机,而服务提供程序就是一个服务器.首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息.在服务器端,进程保持睡眠状态直到调用信息到达为止.当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息.最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行.
1.4 流动计算架构(SOA)
随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架.
2. 项目的演变过程
1️⃣.单一应用架构:
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本.
此时,用于简化增删改查工作量的数据访问框架(ORM)是关键.
2️⃣.垂直应用架构:
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率.
此时,用于加速前端页面开发的 Web框架(MVC)是关键.
3️⃣.分布式服务架构:
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求.
此时,用于提高业务复用及整合的 分布式服务框架(RPC)是关键.
4️⃣.流动计算架构:
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率.
此时,用于提高机器利用率的 资源调度和治理中心(SOA)是关键.