场景
如果咱们关上支付宝首页,去看咱们的余额,它会展现你的总资产,昨日收益、累计收益等信息。如果这个页面所展现的信息,都来自各个不同的零碎 / 利用,咱们通过各个接口把这些数据展现进去。如果咱们当初要在前端页面展现这几项数据的话,咱们应该怎么去展现呢?
在这种状况下,咱们不可能让客户端与 6 个不同的利用 / 零碎都一一去通信来去实现数据的展现。而是 6 个利用 / 零碎之间进行彼此通信来实现调用,最初客户端只须要调用一个接口来获取数据即可,而不是与每一个利用 / 零碎进行通信。咱们的架构可能是如下的样子:
一个电商零碎,比方淘宝,咱们在首页会展现很多数据信息,例如:首页信息、商品信息、个人信息、推送信息等等很多。如果首页展现的数据来自 100 个不同的利用 / 零碎,那么通过如上架构,咱们在后端便会呈现几百个乃至上千个通信的交互,那么后端的构造就会变得十分的宏大和简单。所以在这样的架构下,咱们须要对下面构造作出一些调整,所以咱们就引入了 SOA 架构
图示区别
什么是 SOA 架构
SOA(全称:Service Oriented Architecture),中文意思为“面向服务的架构”,你能够将它了解为一个架构模型或者一种设计办法,而并不是服务解决方案。其中蕴含多个服务,服务之间通过相互依赖或者通过通信机制,来实现互相通信的,最终提供一系列的性能。一个服务通常以独立的模式存在与操作系统过程中。各个服务之间通过网络调用。
跟 SOA 等量齐观的还有一个 ESB(企业服务总线),简略来说 ESB 就是一根管道,用来连贯各个服务节点。为了集成不同零碎,不同协定的服务,ESB 能够简略了解为:它做了音讯的转化解释和路由工作,让不同的服务互联互通;
咱们将各个利用之间彼此的通信全副去掉,在两头引入一个 ESB 企业总线,各个服务之间,只须要和 ESB 进行通信,这个时候,各个利用之间的交互就会变得更加的清晰,业务架构 / 逻辑等,也会变得很分明。本来芜杂没有布局的零碎,梳理成了一个有布局可治理的零碎,在这个过程中,最大的变动,就是引入了 ESB 企业总线。
SOA 所解决的外围问题
1.系统集成:站在零碎的角度,解决企业零碎间的通信问 题,把原先散乱、无布局的零碎间的网状结构,梳理成规整、可治理的零碎间星形构造,这一步往往须要引入 一些产品,比方 ESB、以及技术规范、服务治理标准;这一步解决的外围问题是【有序】
2.零碎的服务化:站在性能的角度,把业务逻辑形象成可复用、可组装的服务,通过服务的编排实现业务的疾速再生。目标:把原先固有的业务性能转变为通用的业务服务,实现业务逻辑的疾速复用;这一步解决的外围问题是【复用】
3.业务的服务化:站在企业的角度,把企业职能形象成可复用、可组装的服务;把原先职能化的企业架构转变为服务化的企业架构,进一步晋升企业的对外服务能力;后面两步都是从技术层面来解决零碎调用、零碎性能复用的问题。第三步,则是以业务驱动把一个 业务单元封装成一项服务。这一步解决的外围问题是【高效】
微服务架构
微服务架构其实和 SOA 架构相似,微服务是在 SOA 上做的升华。微服务架构重点强调的一个是 ” 业务须要彻底的组件化和服务化“,原有的单个业务零碎会拆分为多个能够独立开发、设计、运行的小利用。这样的小利用和其余各个利用之间,互相去合作通信,来实现一个交互和集成,这就是微服务架构。
组件化:组件示意一个能够独立更换和降级的单元,就以 PC 机为例,PC 中的 CPU、内存、显卡、硬盘一样,独立更换降级而不影响其余单元。如果咱们把 PC 作为组件以服务的形式构建,那么这台 PC 只须要保护主板和一些必要的外部设备。CPU、内存、硬盘都是以组件形式提供服务,PC 须要调用 CPU 做计算解决,只须要晓得 CPU 这个组件的地址即可。
微服务的特色
- 1. 通过服务实现组件化
- 2. 按业务能力来划分服务和开发团队
- 3. 去中心化
- 4. 基础设施自动化(devops、自动化部署)
SOA 和微服务架构的差异
1. 微服务去中心化,去掉 ESB 企业总线。微服务不再强调传统 SOA 架构外面比拟重的 ESB 企业服务总线,同时 SOA 的思维进入到单个业务零碎外部实现真正的组件化
2.Docker 容器技术的呈现,为微服务提供了更便当的条件,比方更小的部署单元,每个服务能够通过相似 Node 或者 Spring Boot 等技术跑在本人的过程中。
3.SOA 重视的是系统集成方面,而微服务关注的是齐全拆散
作者:扛麻袋的少年
链接:blog.csdn.net/lzb348110175/article/details/96738781