SOA和微服务之间的主要区别是什么?
典型回答 其实SOA和微服务就是差不多的。 SOA关注的是服务重用,微服务在关注服务重用的同时,也同时关注快速交付; 微服务不再强调传统SOA架构里面比较重的ESB企业服务总线。微服务把所有的“思考”逻辑包括路由、消息解析等放在服务内部,去掉一个大一统的ESB,服务间轻通信,是比SOA更彻底的拆分。(可以看看这篇文章,我觉得写的挺好的:微服务(Microservice)那点事) 扩展知识 面向服务的架构 面向服务架构(Service-Oriented Architecture,SOA)又称“面向服务的体系结构”,是Gartner于20世纪90年代中期提出的面向服务架构的概念。 面向服务架构,从语义上说,它与面向过程、面向对象、面向组件一样,是一种软件组建及开发的方式。与以往的软件开发、架构模式一样,SOA只是一种体系、一种思想,而不是某种具体的软件产品。 这里,我们通过一个例子来解释一下到底什么是SOA?如何做到SOA? 什么是SOA SOA也可以说是一种是设计原则(模式),那么它包含哪些内容呢?事实上,这方面并没有最标准的答案,多数是遵从著名SOA专家Thomas Erl的归纳: 标准化的服务契约 Standardized service contract 服务的松耦合 Service loose coupling 服务的抽象 Service abstraction 服务的可重用性 Service reusability 服务的自治性 Service autonomy 服务的无状态性 Service statelessness 服务的可发现性 Service discoverability 服务的可组合性 Service composability 这些原则总的来说要达到的目的是:提高软件的重用性,减少开发和维护的成本,最终增加一个公司业务的敏捷度。 既然是面向服务的架构,那么我们就先来定义一个服务, 1 2 3 4 5 6 7 8 9 public interface Echo { String echo(String text); } public class EchoImpl implements Echo { public String echo(String text) { return text; } } 上面这段代码相信有过JavaWeb开发经验的人都不会陌生。就是定义了一个服务的接口和实现。 ...