百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

数据总线是否就是ESB服务总线,从企业应用集成场景说起

mhr18 2024-10-01 12:01 25 浏览 0 评论

最近经常听到有人说数据总线的概念,因此今天做下对这个概念的进一步解释和说明。在我前面头条文章中可以看到,对于传统企业内部的应用集成,我一般只会用两个概念,一个是SOA集成平台,一个是ESB企业服务总线,基本不会用数据总线这个概念。

要谈数据总线,还是先回顾下企业内应用集成场景。

企业集成场景和服务实现

对于ESB服务总线,估计大家都清楚更多的是适合承载业务服务,而有业务服务的一个典型特点就是粗粒度,业务并发量可能很大,但是服务本身本次传递的数据量不大,而是调用时间快的话连接资源和内存资源都可以做到快速释放,因此不会对ESB总线本身造成太大的性能压力。

业务交互的实时性

如果ESB总线更多的是承载业务服务和应用集成的话,那么大部分服务都应该是实时调用和交互,其中又有两个场景,一个是业务单据在生效后实时分发到下游的业务系统(该情况下数据落地);另外一个场景就是实时的查询其它业务系统的外部服务能力(在这种情况下数据不落地)。

对于实时交互的服务往往数据量都不应该太多,完全属于ESB服务总线采用WS服务能够解决的范畴,当然你既可以使用SOAP WS也可以使用Rest WS都可以。对于模糊查询数据不落地场景,则可能数据量大,在这种情况下往往采用分页服务的方式来解决性能问题。

对于没有业务实时性要求的场景,往往更多走的是数据集成和同步,类似传统的数据交换,因此这类服务更多的是走数据服务模式,不论是查询服务或者导入服务,都可以作为定时服务进行。这也是传统企业在业务系统间进行接口集成最常用的方式,但是带来最明显的问题就是业务实时性无法满足要求,并可能导致同一时点数据在多个系统间不一致的情况。

服务调用并发量和数据量

服务调用并发量也是我们衡量服务实现方式的一个关键考虑因素,对于大并发调用的服务虽然也可以采用类似ESB服务中的缓存机制提升性能。但是更多的仍然要考虑在大并发情况下对端目标系统本身的承载能力。对于并发量大的服务调用,如果数据量小往往响应时间容易控制。但是如果数据量很大,则整个服务连接保持时间长,同时JVM内存消耗巨大,这样很容易导致ESB JVM内存溢出的场景错误。

因此对于数据量大的服务调用往往并不推荐走ESB,而是走ESB+ETL结合的模式,即实际的数据传输走传统的ETL点对点传输完成,而ESB接入服务的只负责通过服务接口调用实时发起数据传输任务。

还有一种服务大并发调用,对于目标系统无法做到及时响应的场景,在这种情况下可以通过ESB的消息中间件进行服务调用流量控制和削峰处理。其实现本身又有两种方式,一种是走类似JMS消息中间件的基本处理,变同步服务为异步消息集成服务,另外一种就是仍然走同步WS服务,但是在出口端对ESB服务进行流量控制。

对于大文件传输,往往还有独立的文件传输平台产品,类似在Oracle SOA 12c版本中已经单独新增加了MFT文件传输模块来实现大文件传输,以及传输过程的端到端监控能力。当然MFT文件传输本身也是可以和ESB服务进行集成的,通过ESB服务来触发实时的文件传输,这和ESB服务和ETL传输是一个道理。

场景总结

通过前面描述可以看到对于ESB总线更多是对于大并发小报文的业务服务类API接口的集成,而对于大数据集成,大文件集成往往需要借助类似ETL工具,MFT文件传输平台来完成。但是对于SOA集成平台这个说法往往会同时包括了服务集成,消息集成,文件集成,大数据集成等各种集成能力。

对数据总线概念的进一步说明

在谈数据总线的时候,首先还是要说明下总线的概念。

总线英文名称为Bus,简单来说是一个类似Hub的集中点,总线(Bus)是指计算机组件间规范化的交换数据(data)的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。

也就是说总线核心作用是消息和数据的交换。

对于很多年前在ESB总线还没有大量应用的时候,经常会谈到数据交换平台这个概念,实际上数据交换平台很类似数据总线的概念。

这个交换可以是消息报文,也可以是大数据,也可以是文件等各种类型。但是不管是哪种类型,总线一个典型特征就是所有的数据都必须流经过总线这个Bus管道。也正是由于数据流通过了Bus,那么总线可以对所有的消息,数据进行统一的拦截。

这个拦截点可以进行一系列的安全,日志,审计,限流等各种管控操作。

那么对于ETL是否能够作为数据总线?

ETL大家都比较清楚,能够实现数据采集集成,清洗等各种数据集成能力。但是在传统的ETL概念里更多是配合BI系统或工具使用,对于采集的数据也是直接导入到BI目标系统。也就是ETL不是一个独立的平台或系统,仅仅是BI系统提供的一个数据采集和集成工具,同时ETL也不是完成业务系统间的数据集成,而是统一完成业务系统-》BI系统间的数据采集。

从这个意义上ETL还不能算严格意义上的数据总线。

其次,ETL工具一般只能够定时调度数据抽取,而无法通过接口服务实时调用进行数据采集,这个本身也是ETL工具本身的一个弱点。

在前面谈SOA集成平台的时候谈到,SOA集成平台一般会通过ESB总线+ETL共同来实现大数据集成能力。即ETL负责数据流,而ESB总线负责管控流,管控和数据流进行分离。类似Oracle产品中的ODI实现。

那么对于ESB+ETL结合的模式是否就是数据总线?

数据总线核心仍然是服务集成+大数据集成两个方面的能力,而这两个能力也正是通过ESB和ETL来提供。因此如果这两个内容融合的很好,那么可以理解为数据总线,如果融合的不好,那么会发现很多管控操作需要同时登陆两个产品去处理,那么实际和数据总线希望的目标还有差距。

综上,一个完整的数据总线应该具备如下能力。

最基本的ETL工具的能力,支撑各种DB数据库的适配

  • 支撑当前主流的非结构化数据库集成
  • 数据对象建模和对象定义
  • 任务定时调度,规则调度和调度监控能力
  • 和SOA服务进行集成,支持实时调度能力
  • 数据安全和数据审计
  • 数据质量管理能力
  • 简单的数据转换,数据映射等能力

如果你是传统的ETL工具,那么需要剥离后形成一个独立的产品并提供面向开发者的管控治理平台,如果是ESB总线,那么就需要扩展大数据集成能力。不论是哪种方式,数据总线都需要做到对数据的记录,安全和日志审计。这是中心化架构带来的一个大好处,否则还不如完全去中心化点对点模式。

相关推荐

一文带您了解数据库的行列之争:行式与列式存储的异同

数据库存储格式是数据库管理系统中一个至关重要的方面,它直接影响到数据的组织和检索效率。在数据库中,有两种主要的存储格式,即行式存储和列式存储。这两者采用截然不同的方法来组织和存储数据,各自具有一系列优...

NL2SQL(三)开源项目怎么选:talk is cheap, show me the code!

老规矩,先看效果下面的demo来自试用的SuperSonic,将会在下面详细介绍:大模型时代Text-to-SQL特点随着基于LLM技术的发展,RAG/AIAgent/Fine...

JDK25长期支持版九月降临:18项王炸功能全解析

Java要放大招啦!9月份推出的JDK25长期支持版已经锁定18个超能力,从稳定值到结构化并发,还有Linux系统下的"预知未来"性能分析!下面我用打游戏的术语给你们掰扯明白:1、飞...

OceanBase 推出单机版 高度兼容MySQL和Oracle

【环球网科技综合报道】3月27日,独立数据库厂商OceanBase正式发布单机版产品。据悉,这一产品基于自主研发的单机分布式一体化架构设计,具备极简数据库架构和高度兼容性,为中小规模业务提供兼具性能与...

黄远邦:应对7月1日闰秒对Oracle数据库影响

由于今年7月1日全世界会多出一秒,这可能对时间敏感的IT系统造成较大影响。中亦科技数据库团队对此问题做了深入的研究,并对用户系统提出了相应的解决方法及建议。中亦科技数据库产品总监黄远邦认为,闰秒调整会...

MySQL数据库密码忘记了,怎么办?(mysql 数据库密码)

#头条创作挑战赛#MySQL数据库密码忘记了且没有其他可以修改账号密码的账户时怎么办呢?登录MySQL,密码输入错误/*密码错误,报如下错误*/[root@TESTDB~]#mysql-u...

Chinese AI Talent in Spotlight as Nvidia and Meta Escalate Talent War

OntherightisBanghuaZhu,ChiefResearchScientistatNVIDIATMTPOST--SiliconValley’stoptech...

用Cursor开启JAVA+AI生涯(javascirpt怎么开启)

Cursor是基于VSCode开发的一款编辑器,支持多种语言的开发编辑。与传统的开发工具相比,它有多种优势:与AI无缝集成,响应速度快,占用内存小。但很多同学在"起步"过程中遇到了...

毕业十年了,自从做了开发用了很多软件,但距离写开发工具还很远

办公系统类:办公软件Word、Excel、PowerPoint三大必备技能+腾讯/金山在线文档解压缩操作:7-zip/winrar文件文本处理:Notepad++(文本编辑器正则表达式超级好...

盘点Java中最没用的知识⑤:这3个老古董你还在代码里“考古”?

一、Stack类:“继承Vector”的历史bug,为何成了性能拖油瓶?你是不是在学Java集合时,老师说过“栈结构用Stack类”?是不是在老代码里见过"newStack<>(...

Gemini 2.5 Pro 0506发布,编程最强大模型, 碾压 Claude3.7 sonnent

一、Gemini2.5Pro(I/Oedition)发布1、为何叫I/Oedition?谷歌史上最强编程模型Gemini2.5Pro(I/Oedition)发布,具体型号是Gemin...

如何让无聊变得有趣(附本人大量美图)

文/图:金冬成在这条长300公里的公路上,我已经来回往返了无数次。3小时车程,一个人,想想都是多么无聊的一件事。其实,人生道路上,类似这种无聊的事情有很多很多。无聊的事情、枯燥的工作,往往让我们容易失...

Oracle 推出 Java 24,增强 AI 支持和后量子加密

导读:Oracle宣布正式发布Java24,该语言增加了几个新功能,例如StreamGatherersAPI和Class-FileAPI的可用性,以及专门为AI推理和量子安全设计...

公司ERP突然变慢?“索引重建”这颗“药”可不能随便吃!

各位老板、IT小哥、财务小姐姐,有没有遇到过公司ERP系统突然卡顿得像“老爷车”,点个按钮半天没反应,急得直跺脚?这时候,可能有人会跳出来说:“我知道,重建一下数据库索引就好了!”听起来像个“神操作”...

基于Java实现,支持在线发布API接口读取数据库,有哪些工具?

基于java实现,不需要编辑就能发布api接口的,有哪些工具、平台?还能一键发布、快速授权和开放提供给第三方请求调用接口的解决方案。架构方案设计:以下是一些基于Java实现的无需编辑或只需少量编辑...

取消回复欢迎 发表评论: