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的协议。

posted @ 2025-03-24 20:36  fitch_liu  阅读(60)  评论(0)    收藏  举报