一、概述

1、什么是ESB

就是企业数据总线的意思,他的核心功能就是兼容各种协议接口,可以将数据在各种协议之间进行流转,并且可以针对数据格式进行编排转换

代表性的项目有:JBOSS ESB,Mule,Camel 以及一些其他的esb项目

2、什么是服务注册

就是将所有的服务接口(很多时候是hession协议的接口),注册到一个中心的分布式服务集群上(你可以考虑成apache的zookeeper服务实现的效果)。各个业务系统直接访问分布式服务查找需要调用的接口位置,进而调用

代表性开源项目有:阿里的dubbo,淘宝的HSF(现在不知道是否继续开源了)

二、双方特点

1、ESB

ESB一般采用集中式转发请求,适合大量异构系统集成,并且压力不大的情况

但集中式转发也是有优势的,比如调用方用http协议,提供方用rmi协议,转发就可以转换协议,对双方都透明。另外,在总线上还可以执行流程引擎,做服务编排,比如A和B两个服务经常一起调,就可以编排成服务C,而不用再单独启一个服务去做。还有,安全,流控,做起来也更方便。

支持groovy类型的脚本语言,在总线上可以给数据格式做转换

2、服务注册管理

采用的是分布式调用,注册中心只记录地址信息,然后直连调用,适合并发及压力比较大的情况。

对于网站应用,大多是垂直业务,直接从数据库拉数据展示。

三、应用场景

1、ESB

esb最常见的场景是,把系统里的集成逻辑,单拉出来, 放到esb容器里来部署,并跟应用系统适配。 这样让应用系统变得只有自己的业务逻辑,简单、轻薄。

劣势:在所有的服务上增加了一个总线作为沟通的渠道。对于较大的并发量会将瓶颈推到ESB总线上。很多时候ESB总线都采用MQ类的消息服务器来异步处理缓解压力

2、服务注册

淘宝和阿里的各个业务系统提供了很多的接口,这个时候需要统一管理提供个各子业务系统使用,让各个子业务系统可以通过注册中心很快找到对应的服务

劣势:服务编排和协议转换还是靠各个业务子系统了

四、综述

1、两类开源项目侧重点不同,ESB侧重任务的编排,性能问题可通过异构的方式来进行规避。无法支持特别大的并发

2、服务注册侧重服务的治理,将各个服务颗粒化,各个子业务系统在程序逻辑上完成业务的编排。但是比较实用较大的并发量,因为dubbo类的只是存放服务地址。有zookeeper类的分布式通讯框架,能保证单点的失败不影响整个系统的业务调用,因为业务接口都是在各个提供服务的子系统中

=========================================================================

1、首先做个概念上的澄清,ESB是企业服务总线,不是数据总线,从某种角度上可以说ESB包含了数据总线的功能、但不仅仅是数据总线;

dubbo最初是阿里的一个Java远程调用框架(阿里贡献出来给开源社区了,现在是apache dubbo),不是什么“注册服务管理”,dubbo支持使用zookeeper或者redis做注册中心,所以你也可以认为dubbo包含了注册服务管理的功能(主要强调注册、管理功能较弱)、但又不仅仅是服务注册管理。

2、个人对ESB的理解:不是特定的产品或框架,甚至不是规范,而是一个宽泛的概念。这是什么意思呢?比如Oracle公司有自己的ESB产品,JBoss也有ESB产品,还有各种开源的ESB产品,这些ESB虽然都叫做ESB,但使用起来决然不同,基本上也不可能做到平滑的产品替换(比如把开源ESB换成Oracle的ESB)。

ESB试图用一种大而全的方式,把企业里的服务调用都“管理”起来,这里的“管理”的范畴非常宽泛,比如服务注册、查找ESB要管,数据传输也要管,数据转换也要管,总之这是个事无巨细都要管起来的“管家婆”。

假设A系统要调用B系统的某个服务,A系统的服务都是走基于HTTPS的SOAP方式的、而B系统都是HTTP的REST服务,这两个系统之间如果要直接交互基本上是鸡同鸭讲。但只要B系统在ESB上注册过、并配好各种转换规则啥的,那么对A系统来说,只要把调用的数据给ESB,剩下的全部就是ESB来帮你搞定了,A系统根本不关心B系统的服务的具体实现方式是啥、开发语言是啥,只要知道B系统确实有这个服务就行了。

3、个人对Dubbo的理解,这是一个阿里的java远程调用框架、底层通信基于netty开发,并且天生就和spring完美结合,从这里就可以看出,dubbo不是ESB那种试图管天管地啥都要管的东西,dubbo的目的很明确,就是提供一个java应用之间的、高效的远程调用框架。

dubbo的注册中心,只是提供一个注册和查找服务的地方,查找到之后,A系统就直接调用B系统的服务了,中间并没有一个统一的数据通道之类的东西。

至于什么java应用和.net应用之间怎么交互,XML转换为Json、或者Json转XML,dubbo说:我从来就没想过这些啊!

4、小结,ESB和dobbo的区别

1)概念上就不同,ESB是个宽泛的概念,dubbo是个具体的应用框架

2)具体产品层面,ESB有很多种实现,有大厂的、也有开源的,体量有大有小、投资也有大有小,dubbo有阿里亲生的版本,有段时间阿里不再维护dubbo了,又生出若干变种,比如dubbox,最新的dubbo则是apache dubbo,但说到底dubbo只是一个只有几M大小的jar包,免费下载免费用

3)功能上,ESB非常强大、五花八门的啥功能都有,更像是一个企业SOA的全面解决方案,而dubbo则非常单一:java的高性能RPC框架

4)从程序员角度,dubbo是个值得去了解、学习的一个框架,哪怕你现在所在的公司、团队不用dubbo。但ESB么,知道下是个啥概念就行了,学就不用了,就算你想学,你学哪个?IBM的?Oracle的?还是开源的?

SOA:ESB 服务注册中心相关推荐

  1. 微服务网关和服务注册中心

    在前面谈微服务架构的时候,已经有多篇文章都谈到过微服务网关,由于微服务网关本身也是提供代理,路由,安全,日志,负载均衡,流量控制等能力,因此我谈的最多的就是可以将微服务网关理解为轻量的ESB服务总线, ...

  2. 微服务架构-服务注册中心和服务网关(6.8) (转载)

    原文链接:微服务架构-服务注册中心和服务网关(6.8) 这篇文章还是基于SpringCloud开源框架体系来谈下对Eureka服务注册中心和Zuul服务网关在使用上的一些理解和说明.在使用微服务架构进 ...

  3. 蚂蚁金服开源服务注册中心 SOFARegistry

    SOFAStack(Scalable Open Financial Architecture Stack )是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景 ...

  4. 蚂蚁金服服务注册中心 SOFARegistry 解析

    SOFAStack (Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景 ...

  5. 蚂蚁金服服务注册中心 SOFARegistry 解析 | 服务发现优化之路

    SOFAStack Scalable Open Financial  Architecture Stack 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景 ...

  6. SpringCloud + Consul服务注册中心 + gateway网关

    1  启动Consul 2  创建springcloud-consul项目及三个子模块 2.1 数据模块consul-producer 2.2 数据消费模块consul-consumer 2.3 ga ...

  7. Eureka服务注册中心

    Eureka服务注册中心 最近在研究Spring Cloud,发现其中的组件实在是太多了,真的是头大,只能一块一块看,像盲人摸象一样.要想很短时间内掌握Spring Cloud是不可能的,小编就学习一 ...

  8. Spring Cloud Alibaba教程:使用Nacos作为服务注册中心

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 什么是Nacos? Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易 ...

  9. Spring Cloud第十篇:高可用的服务注册中心

    文章 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka) 介绍了服务注册与发现,其中服务注册中心Eureka Server,是一个实例,当成千上万个服务向它注册 ...

最新文章

  1. java web项目优化记录:优化考试系统
  2. Android开发3g、wap、net的区别
  3. jquery程序 windows移植到linux显示不了,windows程序移植linux
  4. 关于 redis.properties配置文件及rule
  5. (转载)Unity真机调试
  6. Qt之水平/垂直布局(QBoxLayout、QHBoxLayout、QVBoxLayout)
  7. Python编程从入门到实践~文件写入
  8. php读取云平台数据库,读取Read · ThinkPHP5+数据库和模型 · 看云
  9. 苹果延期中国零售商店的重新开业时间 线上商店依旧正常工作
  10. 2018阿里编程测验题:最短汉密尔顿回路
  11. electron-vue使用electron-updater实现自动更新
  12. Redis服务安全加固
  13. Linked List Cycle | ||
  14. 证明CLIQUE(团问题)是NP完全
  15. XenServer利用XenCenter配置网络选项
  16. 手把手教你搭建Java 开发环境
  17. 在线教学生计算机,洪恩老兔轻松教你学电脑
  18. 获取网络时间(国家标准时间)
  19. 学云计算能从事什么工作 云计算就业怎么样
  20. 计算机专业surface pro,surface pro4家庭版和专业版的不同

热门文章

  1. opcode php 缓存,PHP Opcode 缓存
  2. 手绘图解:从零维到十维空间
  3. Kylin高级主题-Cube构建算法介绍(逐层算法和快速算法)
  4. 惊!揭秘AI人工智能机器人自动写诗的奥秘!
  5. AAAI 2023 | CF-ViT:由粗到细的两阶段动态推理架构
  6. 控制面板快捷键win10_Win10系统启动变慢怎么办,Win10系统启动变慢解决方法
  7. 经验分享:兢兢业业工作5年的我不敌半年新人,原来“迪赛智慧数”才是升职加薪的关键!
  8. php error_reporting 无效,PHP error_reporting 很不理解。。。
  9. Docker compose 部署habor
  10. 第一次写正规论文的同学务必分享,排版自动排版,加注释。。。。。。等等!!!!!!!!(copy也得整出档次来啊,这就是门面啊)