SOA vs. Microservices: What's the Difference?
Differences
- scope不同。如上图,SOA面向的scope更大,Microservice更小。或者说,Microservice切分的更细。
- 在一个Application内
- SOA共享各层,比如共用一套存储层。
- Microservice进一步拆分了Application,不同的Service有不同的存储。
- 服务通信上,SOA全局使用ESB。Microservice则各个服务各自使用,不要求一致的通信协议。
- 互操作上,Microservice更多的采用轻量的协议,如HTTP/REST。SOA更常用SOAP、AMQP、MSMQ
- 数据治理上,SOA天然去做了全局的数据治理。而microservice天然service之间互不关心数据。
The nature of SOA, involving shared resources, enable the implementation of common data governance standards across all services
其实,SOA和Microservice都是从Monolithic(大单体)逐渐发展而来。
Monolithic=》SOA=》Microservice。
SOA拆分了Monolithic,但依赖一个全局的ESB去做服务间同步。Microservice则更进一步,没有全局中间件,各个服务自己定义。
Microservice的相对优点
- 韧性更强 Greater resilience,因为service互不干扰
- 扩展性更强 Simpler, more cost-effective scalability
- 灵活性更强 Improved developer agility and productivity
See More