直接回答
SOA 和微服务都主张把系统拆成独立服务,但粒度和理念不同:SOA 偏向企业级集成,服务较粗(常对应业务域或遗留系统),通过重量级中间件(ESB 企业服务总线)集中编排和治理,强调服务复用;微服务是围绕业务能力的小而自治的服务,去中心化治理("智能端点、哑管道"),每个服务独立部署、独立拥有数据,强调独立演进。
展开解析
差异体现在几个维度:通信上,SOA 常经 ESB 做路由、转换、编排,微服务偏好轻量协议(HTTP/gRPC)直连,编排放端点或服务网格;数据上,SOA 服务可能共享数据库,微服务坚持"每服务一库"保证自治;治理上,SOA 强调集中式标准(SOAP、WS-*),微服务接受技术异构、团队自治;部署上,微服务与容器、DevOps 深度绑定,独立发布是硬要求。二者并非对立——微服务可看作"做对了的 SOA",吸取了 ESB 变成单点和复杂度黑洞的教训。选择看组织规模:小团队强上微服务会被分布式复杂度反噬。追问:ESB 与服务网格的区别、康威定律对服务边界的影响。