其实他们就是一个从 MVC 到 微服务 的演变过程
1、MVC架构
其实 MVC 架构就是一个单体的传统架构。
代表技术:Struts2、SpringMVC、Spring、Mybatis 等等。
2、RPC架构
官方的描述:
RPC(Remote Procedure Call):远程过程调用。他一种通过网络从远程计算机程序上请求
服务,而不需要了解底层网络技术的协议。
代表技术:Thrift、Hessian 等等。
简单理解:
如下图所示:客户端应用直接调用服务,服务跟服务之间都是隔离的,没有任何关联,也就是说他们之间是没有通讯通道的,最终都要通过前端应用来访问触发;
3 SOA 架构
官方解释:
SOA(Service oriented Architecture):面向服务架构
ESB(Enterparise Servce Bus):企业服务总线,服务中介。主要是提供了一个服务于服务
之间的交互。
ESB 包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控
告急等等。
代表技术:Mule(付费)、WSO2(完全免费开源)
简单理解:
如上面的RPC模式架构图,一旦服务节点过多,就非常不利于管理这些服务,比如服务的注册与发现、网关、容错,分布式配置中心、服务跟踪、资源耦合性高浪费、IP暴露等等,就会变得非常麻烦,这个时候就需要SOA架构了。(或者微服务架构),
同RPC相比,SOA最关键的一点是:所有服务都集成
到企业总线ESB下,ESB就可以对这些服务进行治理,使得服务与服务之间有了关联,SOA架构图如下所示:
4 微服务架构
微服务其实就是企业总线(ESB)的一个轻量级服务治理替代方案。
代表技术:SpringCloud、dubbo 等等