什么是SOA中的微服务

时间:2017-12-28 19:30:02

标签: soa

我一直试图了解一些SOA原则并且遇到了这个描述SOA中微服务的页面:

http://soapatterns.org/design_patterns/micro_task_abstraction

  

解决方案:具有专用的非不可知逻辑的各个单元   处理和部署要求使用   微服务模型并抽象到微服务层中   有支持的环境定制的建筑自由   专业服务处理和部署要求。

这些专门的处理和部署要求是什么?

SOA中微服务和任务服务之间的关键区别是什么?因为他们在我看来都是不可知的,可以与其他实体和公用事业服务合成。

1 个答案:

答案 0 :(得分:2)

面向服务的体系结构(SOA)处理定义服务,设计服务的目的接口,治理,服务生命周期,运营 SLA的和“使用协议”(最后两个导致了许多非功能性要求)等等。

微服务可以被视为更多的开发和部署方法。如果正确定义了SOA(您的接口是干净的,设计具有适当的粒度,松散耦合),则根据您的技术平台,您可以更轻松地应用微服务方法。 定义服务后,您的实现注意事项将包括基础结构,应用程序服务器,构建和部署机制。微服务部署模型的一个关键定义特征是,在单个可部署单元中自包含的“堆栈”(可以称为容器) 。

使用Java示例,至少微服务可能是在其自己的独立JVM(捆绑库,应用程序/ Web服务器)中运行的一个服务或功能(公开为Rest或SOAP),您可以将其称为容器(example here)。将此与更“传统”的方法进行对比,您可以让一个团队管理可以部署多个服务或功能的应用程序服务器。主要的好处是可以避免冲突的依赖关系,您的环境完全在您的控制之下(实际上是几行代码),并且您的服务可能会更可预测地执行,因为它不会受到来自争用相同资源的其他服务的干扰(JVM线程,数据来源仅举几例)。

专用的容器管理工具(如docker和相关脚本)允许您将环境中所需的任何所需配置组合在一起。

更新16 / Jan / 2018 另请注意this paragraph on the distinction between SOA and Microservices作为概念。我把它翻译为:人们没有做正确的SOA,所以需要一个新的流行语。真实到一定程度。但是,您也可以将这两个视为互补的概念 - SOA设计更加重要,而微服务则是一种更注重部署的方法。