我一直试图了解一些SOA原则,然后我遇到了这个描述SOA中微服务的页面:
http://soapatterns.org/design_patterns/micro_task_abstraction 解:…
面向服务的架构(SOA)处理 确定 服务,设计 什么 他们的服务意味着要做 接口 ,治理,服务生命周期,运营 SLA的 和“使用协议”(最后两个导致一些非功能性要求)等等。
微服务可以被视为更多的开发和部署方法。如果正确定义了SOA(您的接口是干净的,设计具有适当的粒度,松散耦合),则根据您的技术平台,您可以更轻松地应用微服务方法。 定义服务后,您的实现注意事项将包括基础结构,应用程序服务器,构建和部署机制。微服务部署模型的一个关键定义特征是尽可能多的“堆栈” 的 在单个可部署单元中自包含 强> (可以称为 的 容器 强> )。
使用Java示例,至少微服务可能是在其自己的独立JVM(捆绑库,应用程序/ Web服务器)中运行的一个服务或功能(公开为Rest或SOAP),您可以将其称为容器( 这里的例子 )。将此与更“传统”的方法进行对比,您可以让一个团队管理可以部署多个服务或功能的应用程序服务器。主要的好处是可以避免冲突的依赖关系,您的环境完全在您的控制之下(实际上是几行代码),并且您的服务可能会更可预测地执行,因为它不会受到来自争用相同资源的其他服务的干扰(JVM线程,数据来源仅举几例)。
专用的容器管理工具(如docker和相关脚本)允许您将环境中所需的任何所需配置组合在一起。
更新16 / Jan / 2018 另请注意 本段关于SOA与微服务的区别 作为概念。我把它翻译为:人们没有做正确的SOA,所以需要一个新的流行语。真实到一定程度。但是,您也可以将这两个视为互补的概念 - SOA设计更加重要,而微服务则是一种更注重部署的方法。