微服务架构

宏观问题的微观解决方法?

微服务的炒作无处不在,尽管业界似乎无法就确切的定义达成共识,但我们一再被告知,从单一应用程序转向由小型服务组成的面向服务的体系结构(SOA)是正确的方法。构建和发展软件系统。 但是,目前没有传统的“企业”组织谈论采用微服务。 这篇博客文章是对较大文章的预览,该文章探讨了企业中微服务的使用。

界面–良好的合同造就了好邻居

无论您是开始新建的微服务项目,还是要负责将现有的整体解构为服务的任务,首要任务都是定义新组件的边界和相应的应用程序编程接口(API)。

与使用传统的面向企业服务的体系结构(SOA)方法通常实现的服务相比,微服务体系结构中建议的服务粒度要更好,但是可以说SOA的初衷是创建可重用业务功能的内聚单元,甚至如果实施历史讲述了一个不同的故事。

新建的微服务项目通常具有更大的灵活性,并且初始设计阶段可以使用服务提供者与消费者之间的明确责任和合同(例如,使用消费者驱动合同)来定义域驱动设计(DDD )启发的有限上下文。

但是,典型的棕地项目必须寻求在现有应用程序中创建“接缝”,并实现与接缝接口集成的新(或提取)服务。 目标是使每个服务具有高凝聚力和松散耦合; 服务接口的设计是这些原则的种子。

通信–同步与异步

实际上,我们发现许多企业将需要在其服务中同时提供同步和异步通信。 值得注意的是,尽管这些框架所解决的许多挑战仍然存在,但行业内仍在推动人们摆脱人们认为的“重量级” WS- *通信标准(例如WSDL,SOAP,UDDI)。服务发现,服务描述和合同协商(如greg Young在muCon微服务会议上的最新演讲中非常简洁地阐述)。

中间件–传统企业如何应对?

尽管许多重量级的Enterprise Service Bus ESB可以执行一些非常巧妙的路由,但它们经常被部署为黑匣子。 吉姆·韦伯(Jim Webber)曾开玩笑说ESB应该代表“ Egregious Spaghetti Box”,因为在专有ESB中执行的操作并不透明,而且通常很复杂。

如果要求指示使用ESB(例如,消息拆分或基于策略的路由),那么您考虑的第一个选项就是开源轻量级ESB实现,例如Mule ESB或Fuse ESB 。

我通常发现轻量级的MQ平台(例如RabbitMQ或ActiveMQ )更适合,因为我们认为SOA通信的当前趋势是朝着“哑管道和智能端点”迈进,除了消除潜在的供应商费用和锁定外,其他好处使用轻量级的MQ技术可以简化部署,管理和简化测试。

部署微服务–有多难?

无论您选择构建微服务,使用连续集成样式的构建管道都是至关重要的,该管道包括针对功能需求,容错,安全性和性能的严格自动化测试。 在“速度取胜”且快速创新和试验的能力是竞争优势的经济中,手动QA和分阶段评估的经典SOA方法可能不再合适(正如精益创业运动所体现的那样)。

您的应用程序的行为可能会在基于微服务的平台中浮现出来,尽管没有什么可以替代对您的生产堆栈中进行全面而广泛的监视,但是在您的组件暴露给客户之前先进行锻炼(或折磨)的构建管道似乎是高度有益。 正如我在几个会议演示中所讨论的那样,一个好的构建管道应尽可能早地在目标部署环境中行使服务。

摘要– API,轻量级的comms和正确的部署

不管您是否订阅了微服务炒作,这种架构风格似乎在所有软件开发领域中都越来越受欢迎。 本文试图为理解这个不断发展的空间中的关键概念提供入门知识,并希望提醒读者,经典企业SOA之前已经见过许多这样的问题和解决方案。 我们明智的做法是不要重新发明众所周知的“面向服务”的方向盘。

请单击此处,以获取完整的原始文章,该文章提供了有关JVM平台上微服务实现选项的更多信息,并讨论了持续交付的要求。 本文的一个版本最初发布在DZone 2014 Enterprise Integration Guide中。

参考文献

完整的参考文献列表和推荐的阅读材料也可以在原始文章和最近讨论微服务业务含义的文章中找到。

翻译自: https://www.javacodegeeks.com/2015/01/microservices-in-the-enterprise-friend-or-foe.html

微服务架构

微服务架构_企业中的微服务:敌是友?相关推荐

  1. intext:企业_企业中的微服务:敌是友?

    intext:企业 宏观问题的微观解决方法? 微服务的炒作无处不在,尽管业界似乎无法就确切的定义达成共识,但我们一再被告知,从单一应用程序转向由小型服务组成的面向服务的体系结构(SOA)是正确的方法. ...

  2. java实现的微服务架构_详解Java 微服务架构

    一.传统的整体式架构 传统的整体式架构都是模块化的设计逻辑,如展示(Views).应用程序逻辑(Controller).业务逻辑(Service)和数据访问对象(Dao),程序在编写完成后被打包部署为 ...

  3. 二元函数可导与可微的关系_多元函数中可微与可导的直观区别是什么?

    在多元的情况下,可微可导的关系要比在一元情况下复杂,但是只是要复杂一些,如果我们从一元开始去理解,你会发现并不困难. 这篇文章主要阐述以下三个概念:偏微分 偏导数 全微分 全导数这里暂时不讲,看名字好 ...

  4. 微服务架构(一):什么是微服务

    解析微服务架构系列文章将分几篇描述微服务的定义.特点.应用场景.企业集成架构的演进以及微服务转型思路和技术决策考虑等内容,并以IBM技术为例介绍如何实现微服务架构转型. 为什么需要微服务架构 &quo ...

  5. (转)微服务架构 互联网保险O2O平台微服务架构设计

    http://www.cnblogs.com/Leo_wl/p/5049722.html 微服务架构 互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也 ...

  6. 万字长文解析:分布式架构、SOA、微服务架构、API网关、ESB服务总线架构之间的关联及演进

    1架构演进 架构十五年:改变的是形态,不变的是目的 业务驱动架构形态变化 过去十几年,随着互联网发展以及业务的多样化,系统的架构也在不断发生变化,总体上来说大体经历了从单体应用架构-垂直应用架构-分布 ...

  7. 微服务架构(一):什么是微服务(一)

    解析微服务架构系列文章将分几篇描述微服务的定义.特点.应用场景.企业集成架构的演进以及微服务转型思路和技术决策考虑等内容,并以IBM技术为例介绍如何实现微服务架构转型. 为什么需要微服务架构 &quo ...

  8. DDD微服务架构设计第四课 微服务落地实践的技术中台

    10 微服务落地的技术实践 如今,做一个优秀的程序员越来越难.激烈的市场竞争.互联网快速的迭代.软件系统规模化发展,无疑都大大增加了软件设计的难度.因此,对于架构师的能力要求也越来越高,就像我的一本书 ...

  9. Spring Cloud构建微服务架构:消息驱动的微服务(核心概念)【Dalston版】

    通过<Spring Cloud构建微服务架构:消息驱动的微服务(入门)>一文,相信大家对Spring Cloud Stream的工作模式已经有了一些基础概念,比如:输入.输出通道的绑定,通 ...

最新文章

  1. 使用span标签为文字设置单独样式
  2. tensorflow常见问题
  3. 集合添加数据类型出现:unhashable type: ‘list‘
  4. Uboot中start.S源码的指令级的详尽解析(转)
  5. akka的介绍_Akka笔记–演员介绍
  6. PyPDF2 | 利用 Python 实现 PDF 分割
  7. php内核探索 [转]
  8. mysql中写锁定实例_MySQL中的锁
  9. oracle ns,RAC到单实例SWITCHOVER
  10. 力扣——分数排名(数据库的题
  11. VB代码VB小程序:实现USB摄像头视频图像的监控、截图、录像
  12. 【Linux】Ubuntu18.04深度学习环境配置+Google+TIM+搜狗输入法等安装方法
  13. 大学计算机基础相关书籍,大学计算机基础
  14. 关于sammy的初理解
  15. c语言:“有一个已排好序的数组,要求输入一个数后,按原来的规律将它插入数组中” 的程序分析及详细代码
  16. Japan POJ - 3067
  17. 为什么国内服务器需要备案?
  18. 银行定期存款利息明细表一览
  19. PAT甲级1121 Damn Single
  20. mysql 读写分离 360_使用奇虎360的Atlas实现MySQL读写分离

热门文章

  1. 人工智能数学基础----导数
  2. MySQL · 最佳实践 · 如何索引JSON字段
  3. Ubuntu 16 安装ElasticSearch
  4. JVM中的Stack和Heap1
  5. 【Eclipse】推荐UML插件Green UML、AmaterasUML
  6. telegram 搭建 私聊机器人 转发私聊信息 保护隐私
  7. golang 追加内容到文件
  8. linux shell 逻辑判断 [] [[]] -n -z 用法区别
  9. python flask 跨域问题 解决方法
  10. citrix 路径遍历 rce漏洞(CVE-2019-19781)