一个脑瓜疼的问题,到现在听到的感觉都至少5遍了,网上也看过不少文章,感觉说的总是有那么一点点问题,当然我自己对SOA和微服务的核心区别是什么也说不准。
之前以为是SOA与微服务的关键区别是是否有ESB,现在看起来好像不是这样的,那我借鉴一个老外的看法吧。
SOA架构

微服务架构:

对比
- 微服务更容易的扩展,它基本上是独立的,不可分割的,更容易的发布新的版本。SOA的组件一般比较大型,发布新版本一般更复杂,需要专门的运维团队除了,微服务自己团队就行了。(允许意见不一致)
- 微服务可以采用不同的技术栈进行组合,而SOA架构,每个组件都需要了解通用的交流组件,一般被认为是ESB。
- SOA中因为涉及到ESB,可能会出现单点故障。而微服务每个服务故障只会影响当前的服务。
相同点:
- 两者都是为了处理复杂架构而出现的分布式系统,都需要系统直接的通信,协调
SOA与微服务的主要区别在大小和范围上,微服务一般比SOA的粒度更细。SOA也有可能是一个大的组件,或者内部包含了多个微服务。
最后
不同的人又不同的看法,这两个架构都是为了解决复杂项目而产生的。在业务发展的过程中,可能演化出不同的类型,没有那个更好,或者那个更对,只有更适合自己公司架构的。
网友评论