SOA和微服务的区别

2024-07-09 09:15:00 浏览数 (4)

SOA

SOA架构的出现早于微服务架构,SOA架构主要解决企业级应用集成的问题,强调应用已有功能的复用,其主要特征是企业服务总线(Enterprise Service Bus)的运用。SOA中的每一个应用向ESB暴露服务接口,其他应用通过ESB使用该服务,ESB负责协议转换、消息路由、格式转换等,一般采用同步的方式完成调用,但由于其中心化的特征,ESB本身容易成为系统瓶颈。

微服务

微服务架构是面向单个应用的架构设计模式,需要将应用按照功能划分为一组可以独立部署的微服务,强调解耦和单个微服务的自治。微服务之间不应有功能或数据上的相互依赖,每个微服务都有自己的数据模型,可以基于不同的数据存储技术(SQL、NoSQL),微服务之间的通信也应采用异步的方式。这样可以将单个微服务的错误对系统整体的影响降到最低,体现着高内聚、低耦合的原则。微服务是随着虚拟机、容器云等技术发展起来的,其一大优点是可以独立的横向扩展,有利于持续集成和持续交互

总结

SOA

微服务

使用范围

企业层面

应用层面

服务粒度

独立性

相互依赖

独立自治

数据存储

共享

独立

服务治理

集中式

分布式

服务通信

重量级、同步ESB

轻量级、异步RESTful API

1 人点赞