架构学习笔记:微服务架构与 SOA 架构
微服务与 SOA 架构
关于微服务与 SOA 的关系和区别,主要有以下几个观点:
1.微服务是 SOA 的实现方式
主要是认为 SOA 是一种架构理念,而微服务是 SOA 理念的一种具体实现方式。
2.微服务是去掉 ESB 后的 SOA
认为传统 SOA 架构最广为人诟病的就是庞大、复杂、低效的 ESB,因此讲 ESB 去掉,改为轻量级的 HTTP 实现,就是为服务。
3.微服务是一种和 SOA 相似但本质傻姑娘不同的架构理念
这种观点认为微服务和 SOA 只是有点类似,但本质上是不同的架构设计理念。相似点主要在于两者都关注“服务”,都是通过服务的拆分来解决可扩展性的问题。本质上不同的地方在于几个核心理念的差异:是否有 ESB、服务的粒度、架构设计的目标等。
接下来对比下 SOA 和微服务的一些具体做法:
1.服务粒度
整体上来看,SOA 的服务粒度要粗一些,而微服务的服务粒度要细一些。
2.服务通信
SOA 采用 ESB 作为服务间通信的关键组建,负责服务定义、服务路由、消息转换、消息传递,总体上是重量级的实现。
微服务推荐使用统一的协议和格式,例如 RESEful 协议、RPC 协议、无须 ESB 这样的重量级实现。
3.服务交付
SOA 对服务的交付并没有特殊要求,因为 SOA 更多考虑的是兼容已有的系统;微服务的架构理念要求“快速交付”,相应的要求采取自动化测试、持续集成、自动化部署等敏捷开发相关的最佳实践。
4.应用场景
SOA 适合于庞大、复杂、异构的企业级系统。
微服务更加适合于快速、轻量级、基于 Web 的互联网系统。
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/f251856f46720ea90098483d9】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论