SOA和微服务
随着互联网技术的快速发展,为适应日益增长的用户访问量和产品的快速更新迭代,应用系统架构也经历了从简到繁、
从单体架构到SOA架构再至微服务架构的演进,导致SOA架构向更细粒度、通用化程度发展,也就成就了所谓的微服务
SOA
SOA(Service-Oriented Architecture)是个面向服务的架构,其将系统整体拆分成多个独立的功能模块,模块之间通过调用接口进行交互,有效的整合了应用系统的各项业务功能,系统各个模块之间是松耦合的。SOA以企业服务总线ESB链接各个子系统,是集中式的技术架构,应用服务间相互依赖导致部署复杂,应用间交互使用远程通信,降低了响应速度。SOA强调共享资源,即不同模块可以共享数据库或者中间件,并且这些服务模块通常通过一个中央的服务总线(ESB,企业服务总线)进行通信和管理

微服务架构是SOA架构的进一步优化,去除了ESB企业服务总线,是一个真正意义上的中心化的分布式架构。其降低了微服务间的耦合程度,不同的微服务采用不同的数据库技术,服务独立,数据源唯一,应用及易扩展和维护,同时降低了系统复杂性。

SOA 与微服务的核心区别
| 对比维度 | SOA(面向服务架构) | 微服务架构 |
|---|---|---|
| 架构风格 | 采用集中式 ESB 进行服务编排 | 采用去中心化架构,每个微服务独立运行 |
| 服务粒度 | 服务较大,如“支付服务” | 颗粒度更小,如“订单创建”“订单支付” |
| 通信方式 | 主要使用 SOAP/XML,或 ESB 进行消息中转 | 主要使用 REST/gRPC 或消息队列 |
| 数据存储 | 多个服务可能共享数据库 | 每个微服务独立管理自己的数据库 |
| 技术栈 | 统一技术栈,如 Java、.NET | 可使用不同技术栈,如 Java、Golang、Node.js |
| 部署方式 | 传统部署,依赖应用服务器 | 轻量级部署,支持容器化、云计算 |
| 扩展性 | 需要扩展 ESB,难以横向扩展 | 通过独立扩展微服务,弹性更强 |
| 适用场景 | 适用于企业级 IT 业务,整合如银行、电信、政府机构 | 适用于互联网高并发应用 |
ESB技术

Web服务协议
webservice 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。
Web服务采用一系列的标准协议和技术,包括XML(可扩展标记语言)、SOAP(简单对象访问协议)、WSDL(Web服务描述语言)和UDDI(统一描述、发现和集成协议)等。这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问
UDDI协议:
UDDI 是一种基于 XML 的标准,用于描述、发布和查找 Web 服务
WSDL规范:
是一个用来描述web服务和说明如何与Web服务通信的XML语言。
SOAP协议:
是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议。


浙公网安备 33010602011771号