work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

微服务演进史

Posted on 2020-03-02 15:23  work hard work smart  阅读(1102)  评论(0编辑  收藏  举报

服务化架构的演进历史

Dubbo官网上的一张图

 

   1 单体应用架构

部署到一个war里

部署到一个web容器里(如tomcat)

公用一个DB

 

优点:

容易测试

容易部署

 

缺点:

开发效率低

代码维护难

部署不灵活(如构建时间特别长,如任意小的修改,需要重新构建整个项目)

稳定性不高(如任一一个小问题,可能让你整个系统挂掉)

扩展性不够(如购物场景,商品服务和订单服务,浏览的人比下单的人多,商品服务的流量会大一点。如果是微服务,商品服务部署10台,订单服务部署5台)

 

如下图架构图:

 

2、MVC(垂直应用架构体系)

主要解决前后端、界面、控制逻辑和业务逻辑的分层问题。

比较流行的技术栈SSM,SSH等。

解决了单一架构面临的扩容问题,流量可以分散到各个子系统中,且体积可控,提高了开发效率。

缺点:垂直应用越来越多,应用间的相互交互,相互调用已无法避免,不同系统之间存在重叠的业务。

 

3、RPC

随着业务发展,业务规模的扩大,模块化逐步成为一种趋势。此时解决模块之间远程调用的RPC应用而生。

缺点: RPC本身不负责服务化。例如自动发现不管,服务的应用和发布不管、服务运维和治理不管。

 

4、SOA

为了解决垂直应用架构重复造轮子,提取出来作为单独的系统对外提供服务,形成业务之间的相互重用,这是SOA就出现了。(面向服务的体系价架构)

SOA服务化架构,企业级资产重用和异构系统间的集成对接。

SOA架构的现状

在传统企业IT领域,主要是解决异构系统之间的互通和粗粒度的标准化(WebService)

互联网领域,提供一套高效支撑应用快速迭代的服务化架构。例如各个互联网公司自研或者开源的分布式架构

如下图架构图:

 

5、微服务

微服务是一种架构风格,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。

特征如下:

1)小,且只干一件事情

2)独立部署和生命周期管理

3)异构性

4)轻量级通信。RPC或者Restful

如下图架构图: