微服务架构与SOA架构的区别与联系

场景:

​ 若是咱们打开支付宝首页,去看咱们的余额,它会展现你的总资产,昨日收益、累计收益等信息。假如这个页面所展现的信息,都来自各个不一样的系统/应用,咱们经过各个接口把这些数据展现出来。若是咱们如今要在前端页面展现这几项数据的话,咱们应该怎么去展现呢?前端

​ 在这种状况下,咱们不可能让客户端与6个不一样的应用/系统都一一去通讯来去完成数据的展现。而是6个应用/系统之间进行彼此通讯来完成调用,最后客户端只须要调用一个接口来获取数据便可,而不是与每个应用/系统进行通讯。咱们的架构多是以下的样子:后端

img

​ 一个电商系统,好比淘宝,咱们在首页会展现不少数据信息,例如:首页信息、商品信息、我的信息、推送信息等等不少。若是首页展现的数据来自100个不一样的应用/系统,那么经过如上架构,咱们在后端便会出现几百个乃至上千个通讯的交互,那么后端的结构就会变得很是的庞大和复杂。因此在这样的架构下,咱们须要对上面结构做出一些调整 ,因此咱们就引入了SOA架构网络

0.图示区别

img

1.什么是SOA架构

​ SOA(全称:Service Oriented Architecture),中文意思为 “面向服务的架构”,你能够将它理解为一个架构模型或者一种设计方法,而并非服务解决方案。其中包含多个服务, 服务之间经过相互依赖或者经过通讯机制,来完成相互通讯的,最终提供一系列的功能。一个服务一般以独立的形式存在与操做系统进程中。各个服务之间经过网络调用 。架构

​ 跟 SOA 相提并论的还有一个 ESB(企业服务总线),简单来讲ESB就是一根管道,用来链接各个服务节点。为了集成不一样系统,不一样协议的服务,ESB 能够简单理解为:它作了消息的转化解释和路由工做,让不一样的服务互联互通;微服务


​ 咱们将各个应用之间彼此的通讯所有去掉,在中间引入一个ESB企业总线,各个服务之间,只须要和ESB进行通讯,这个时候,各个应用之间的交互就会变得更加的清晰,业务架构/逻辑等,也会变得很清楚。本来杂乱没有规划的系统,梳理成了一个有规划可治理的系统,在这个过程当中,最大的变化,就是引入了ESB企业总线。组件化

img

SOA 所解决的核心问题操作系统

  1. 系统集成:站在系统的角度,解决企业系统间的通讯问 题,把原先散乱、无规划的系统间的网状结构,梳理成规整、可治理的系统间星形结构,这一步每每须要引入 一些产品,好比 ESB、以及技术规范、服务管理规范;这一步解决的核心问题是【有序】.net

  2. 系统的服务化:站在功能的角度,把业务逻辑抽象成可复用、可组装的服务,经过服务的编排实现业务的快速再生。目的:把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用;这一步解决的核心问题是【复用】设计

  3. 业务的服务化:站在企业的角度,把企业职能抽象成可复用、可组装的服务;把原先职能化的企业架构转变为服务化的企业架构,进一步提高企业的对外服务能力;前面两步都是从技术层面来解决系统调用、系统功能复用的问题。第三步,则是以业务驱动把一个 业务单元封装成一项服务。这一步解决的核心问题是 【高效】code

2.微服务架构

​ 微服务架构其实和SOA架构相似,微服务是在SOA上作的升华。微服务架构重点强调的一个是"业务须要完全的组件化和服务化",原有的单个业务系统会拆分为多个能够独立开发、设计、运行的小应用。这样的小应用和其余各个应用之间,相互去协做通讯,来完成一个交互和集成,这就是微服务架构。

组件化:组件表示一个能够独立更换和升级的单元,就以PC机为例,PC中的 CPU、内存、显卡、硬盘同样,独立更换升级而不影响其余单元。若是咱们把PC做为组件以服务的方式构建,那么这台PC只须要维护主板和一些必要的外部设备。CPU、内存、硬盘都是以组件方式提供服务,PC须要调用CPU作计算处理,只须要知道CPU这个组件的地址便可。

微服务的特征

​ 1. 经过服务实现组件化

​ 2. 按业务能力来划分服务和开发团队

​ 3. 去中心化

​ 4. 基础设施自动化(devops、自动化部署)

3.SOA 和微服务架构的差异

​ 1. 微服务去中心化,去掉ESB企业总线。微服务再也不强调传统SOA架构里面比较重的ESB企业服务总线,同时SOA的思想进入到单个业务系统内部实现真正的组件化

  1. Docker容器技术的出现,为微服务提供了更便利的条件,好比更小的部署单元,每一个服务能够经过相似Node或者Spring Boot等技术跑在本身的进程中。

  2. SOA注重的是系统集成方面,而微服务关注的是彻底分离


原文连接:https://blog.csdn.net/lzb348110175/article/details/96738781

更多信息请关注公众号:「软件老王」,关注不迷路,软件老王和他的IT朋友们,分享一些他们的技术看法和生活故事。

相关文章
相关标签/搜索