这是一篇反对使用ESB作为集中式Hub方式的文章,作者认为一个统一的昂贵的ESB是没有必要的。下面是大意翻译:

ESB激怒我并不是技术本身,而是他们所使用的方法,主要是因为每个一个架构师和他的导师似乎都认为不能没有它,在每一个系统图中间都有一个笨重的大矩形。它并不总是被称为ESB,有时称为“业务流程”或“集成中心”或供应商的产品名称。

首先我们看一下集中式ESB的坏处以及如何以合适方式使用。

图中显示所有的服务通过一个ESB来联系,服务并不知道彼此,中央ESB复杂后需要一个团队来支持它,实际上一个组织中每个服务都是时刻在改变他们的暴露或流程,这样为了防止每个人都会黑了ESB,所有的请求改变为从直接发往ESB到发给ESB团队。

那么ESB的团队就开始拼命忙碌,会被认为是英雄一样帮助大家一起交流,帮助每个服务团队调用获得他们组织的其余需要的东西。不久,他们得到新功能的请求,但是他们不知道如何更改服务,哪些服务应该处理这个功能是一个有点棘手的工作,,这样他们就会将业务逻辑一点点滑到ESB中。这持续了数年,直到大家都明白,ESB包含了大多数的业务逻辑,服务已经差不多成了数据库的CRUD层。

该图是使用ESB技术合适的方式,当然,它再也不是一个真正的ESB,因为它不是整个企业级别,已经不是为整个企业的一个总线,每个服务都会使用ESB技术以保证他们的接口文档,他们可以用它来同时维护一个服务范围内多个版本的接口。服务团队拥有完全的自主权决定在他们的服务会发生什么。在许多情况下,他们并不需要昂贵的软件来做到这一点,他们可以简单地用所选择的编程语言编写它,或使用一个简单的库来实现类类似调解,路由,位置,安全性等,一旦每个服务都有这个能力,那么对于中央的ESB团队要求完全没有了。于该组织一直理智为每个团队分配服务那,鼓励团队与对方直接沟通获得新的功能。面对面的人对人的交流方式也提高了他们对企业软件资产的整体理解。

假设有一个服务方法:

MoneyValue getPriceOfGold()

这在现有功能需求下工作得很好,如果需求变化了,要增加另外一个金属银的价格,聪明的架构师会创建一个新的方法:

MoneyValue getPriceOfMetal(Metal metal)

老的方法getPriceOfGold 因为已经有几个消费者,在这个方法的内部我们转向调用新的方法getPriceOfMetal,这样每个人都不会影响,过一段时间,要求老方法的所有消费者都升级到新的方法调用即可。

这样你并不需要一个中央集中的ESB来完成,你无需在服务外边加入任何东西,只是在服务内部加入一些协调逻辑即可。

还有一种观点,ESB能够允许我们编排服务,编排器是是一种业务逻辑,应该属于服务内部。

有人认为:

服务还有定位服务的功能,器是每个服务都应该有定位其他服务的功能,尅使用DNS,Bonjour也是一种常用的解决方案,UDDI其实没有什么需求。

ESB能够实现路由吗?

一个服务订阅另外一个服务的事件,DNS能够发现Broker,大部分消息Broker提供消息路由。

ESB能够监视我的服务?

你的服务自己应该提供监视自己的功能,比如可以通过syslog JMX和SNMP或windows Events来监视,一些开源Nagios, OpenNMS 都可以做这些事情,你并不需要ESB来完成。

ESB会提供额外的安全吗?

不,他们其实已经被终端移除了安全,开发给你使用,无论你是有意或无意都会造成攻击。

dubbo实现esb_为什么你并不需要企业服务总线(ESB)相关推荐

  1. ESB企业服务总线 --- ESB概述

    谈及企业服务总线(ESB),在有面向服务的架构(SOA)实施经验的开发者眼中一定不会陌生. 这些年,人们一直在谈论它,以至有些人认为"实施SOA一定需要ESB",或"只要 ...

  2. ESB(Enterprise Service Bus,即企业服务总线)

    1. ESB架构之企业实施案例 : http://www.infoq.com/cn/articles/esb-enterprises-case 2. ESB(Enterprise Service Bu ...

  3. 企业服务总线--MuleESB简介

    Mule译为:骡子.顽固的人.Mule是一个以java为基础的企业服务总线(ESB),该集成平台允许开发者在遵循SOA服务导向式架构方法学下快速便捷的将不同应用程序连接在一起交换数据.可以忽略各个应用 ...

  4. ESB企业服务总线到底是什么东西呢?

    下面来说一下你的问题.顾名思义,企业服务总线(ESB)就是一条企业架构的总线,所有的企业服务都挂接到该总线上对外公布,企业服务总线负责管理服务目录,解析服务请求者的请求方法.消息格式,并对服务提供者进 ...

  5. 企业服务总线建设之道的探索与研究

    本文刊至<科技创新导报>2019年22期 摘 要:本文简要介绍了企业服务总线在企业信息化建设过程中的重要性和必要性,分析了企业服务总线作为核心支撑系统在服务接口管控方面发挥的作用.结合实际 ...

  6. 良好的微服务架构能够取代企业服务总线吗?

    原文链接:https://www.voxxed.com/blog/2015/01/good-microservices-architectures-death-enterprise-service-b ...

  7. ERP_基于Oracle SOA的企业服务总线整合

    2015-01-01 Created By BaoXinjian 一.方案背景 随着企业信息化程度的不断提高,企业IT系统日趋庞大,跨系统流程以及各个系统之间.以及系统内部的接口需求和接口服务调用也不 ...

  8. 企业服务总线需求说明

     企业服务总线需求说明 Enterprzise Service Bus 1     ESB的主要作用 ESB主要解决多终端多系统的相互调用问题,减少系统间的耦合,添加可维护性. 2     ESB ...

  9. 好的微服务架构=企业服务总线(ESB)的灭亡?

    这些天,似乎每个人都在谈论微服务. 您可以在数百篇文章和博客文章中读到很多有关该主题的文章,但是我建议的出发点是Martin Fowler的这篇文章 , 该文章引发了有关这种新建筑概念的大量讨论. 本 ...

最新文章

  1. 某程序员求助:喜欢上漂亮的产品经理却不敢追,追不上太尴尬,公司也不允许办公室恋情!网友:别怂!...
  2. Ubuntu 安装 redmine
  3. XGBoost-工程实现与优缺点(中)
  4. java创建树结构_Java学习之XML-017
  5. 白山云科技 CTO 童剑:空降后,如何有技术又有艺术地破局?
  6. 面试想拿 10K,HR 说你只值 7K,该怎样回答或者反驳?看看这位老前辈怎么说
  7. 验证授权【msdn】
  8. 关于CMMI和PMBOK之间的关系和区别比较
  9. 基于系统的流量控制(Qos)
  10. mac sqlite可视化工具_Navicat for SQLite 12 for mac(强大数据库管理及开发工具)
  11. 拓端tecdat:数据评估三方科技公司开发人员能力
  12. webdriver 弹出框 java_如何使用Java处理Selenium WebDriver中的弹出窗口
  13. String[]与ListString 相互转换 KKK笔记
  14. zabbix交换机监控
  15. (十六)soul源码的自定义插件
  16. Bootstrap入门基础(二)
  17. Codevs 5208 求乘方取模
  18. Java学习成长路径
  19. Gradle依赖本地aar包
  20. 阿里大数据之路:数据管理篇大总结

热门文章

  1. bash与source
  2. 机房动环监控系统参数与功能
  3. JGit----将 Git 嵌入你的应用
  4. 粤北华南教育历史研学基地(坪石)调研之一
  5. Scripting Introduction
  6. 想不想知道,使用360安全卫士,网上购物有没有保障?
  7. 将文件复制到FTP服务器时发生错误。请检查是否有权限访问该文件夹 问题解决
  8. 河南省南阳市谷歌高清卫星地图下载
  9. 开发板设置从nfs启动
  10. Excel/Power BI连接MySQL缺少组件,卸载失败