SOA(面向服务的架构) 和 microservices 都将系统分解为多个服务,但它们在粒度、数据所有权和服务通信方式上有所不同。
对比
关键区别
text
SOA ─▶ Service A ─▶ [ Enterprise Service Bus ] ─▶ Service B
(smart pipes, central orchestration, shared schemas)
Microservices ─▶ Service A ──(direct REST/gRPC/event)──▶ Service B
("smart endpoints, dumb pipes" — logic lives in services)
微服务遵循 "smart endpoints, dumb pipes" 原则:智能逻辑存在于服务中,传输保持简单。SOA通常将逻辑集中在ESB中。
陷阱
不要重新引入类似ESB的瓶颈。一个繁重的中央总线会把微服务变回SOA,只是增加了额外步骤。
为什么这很重要
差异主要在于 分布式:微服务将数据所有权和逻辑推向每个服务,以避免许多SOA部署中困扰系统的中央瓶颈。
理解这一点可以防止你在微服务标签下意外地重新构建SOA的耦合。
