SOA | 微服务 |
---|---|
遵循“尽可能多的共享”架构方法 | 遵循“尽可能少的共享”的架构方法 |
侧重点是业务功能重用 | 侧重点在于“bounded context”的概念 |
遵循共同治理并有相关的标准 | 专注于人的合作和其他选择的自由 |
使用企业服务总线(ESB)进行通信 | 简单的消息系统 |
支持多消息协议 | 使用轻量级协议,例如 HTTP/REST 等 |
多线程,有更多的开销来处理I / O | 单线程,通常使用事件循环进行非锁定 I/O 处理 |
最大化服务的可重用性 | 专注于解耦 |
使用传统关系数据库较多 | 使用现代关系型数据库较多 |
系统发生变化时需要修改整体 | 系统发生变化是创建一项新服务 |
DevOps和持续交付正在变得流行,但尚未成为主流 | 专注于DevOps和持续交付 |
需要注意的是,SOA和微服务并不是互斥的,微服务架构可以被视为SOA的一种实现方式。SOA更加关注组织和企业级的架构,而微服务更加关注服务的独立性和可伸缩性。