通常,企业服务总线(ESB)或其他集成解决方案(如提取-转换-加载(ETL)工具)已用于尝试使系统脱钩。 但是,大量的连接器以及应用程序同时发布和订阅数据的要求,意味着系统始终是纠缠在一起的。 结果,开发项目对其他系统有很多依赖性,并且没有什么可以真正解耦的。
这篇博客文章显示了为什么这么多企业利用ApacheKafka®生态系统成功地集成了不同的遗留和现代应用程序,以及这种差异如何,同时也补充了现有的集成解决方案,例如ESB或ETL工具。
整合的需要-一个永无止境的故事
无论您在哪个企业工作,无论公司何时成立,都需要将应用程序彼此集成以实现业务流程。
这包括许多不同的因素:
· 技术(SOAP,REST,JMS,MQTT等标准,JSON,XML,Apache Avro或协议缓冲区之类的数据格式,Nginx或Kubernetes等开放框架以及EDIFACT或SAP BAPI等专有接口)
· 编程语言和平台,例如Cobol,Java,.NET,Go或Python
· 诸如Monolith,客户端服务器,面向服务的架构(SOA),微服务或无服务器的应用程序架构
· 通讯模式,例如批处理,(近)实时,请求-响应,即发即忘,发布订阅,连续查询和倒带。 有关更多信息,Mulesoft在线培训
许多企业体系结构有些混乱-如下所示:
![183b683b312458d82544120855637610.png](https://i-blog.csdnimg.cn/blog_migrate/46a417f3e4bee2115a83a81c11b2e80a.jpeg)
每个公司都需要解决这些意大利面条体系结构。 根据十年的经验,您要么购买了诸如ETL工具来构建批处理管道,要么购买了ESB来设计SOA。 一些产品也更改了名称。 今天,为您提供了诸如中间件消息传递,集成平台,微服务网关或API管理之类的功能。 品牌和产品名称无关紧要。 您始终会看到同一张图片作为从意大利面体系结构移动到中间的中央整体框的解决方案,如下所示:
![b984b4a8e72a03c16dd72a8fcd60ea85.png](https://i-blog.csdnimg.cn/blog_migrate/3930582f07b6a53b214e4d5f22f47732.jpeg)
不幸的是,这在实践中很少能很好地起作用。 在过去的二十年中,大多数SOA项目都失败了。 企业现在不再使用ETL工具或ESB,而是转向流媒体平台来解决此问题。 这是市场上的下一个泡沫吗? 只是一个新名词? 或者,是否发生了真正的变化以允许在整个企业中成功集成?是将旧的大型机,CRM和ERP等标准应用程序集成,使用任何编程平台构建的现代微服务,还是公共云服务? 为什么现在公司迁移到Apache Kafka来构建此流平台? 为什么每个人都会在会议,技术讲座和博客文章中对此感到高兴? 它与ESB或ETL工具相比如何?
下一节将回答所有这些问题,并解释Apache Kafka生态系统与其他现有集成解决方案之间的原因和差异。
事件驱动的处理和流式传输是企业体系结构中的关键概念
事件流平台(您也可以在此处输入另一个流行词)将事件作为核心原则。 您可以考虑事件的数据流,并在运动时处理数据。
许多概念(例如事件源)或设计模式(例如企业集成模式(EIP))都基于事件驱动的体系结构。 以下是流媒体平台的一些特征:
· 基于事件的数据流是(近)实时和批处理的基础。 过去,所有内容都建立在数据存储(静态数据)上,因此无法构建灵活,敏捷的服务以在数据相关时对数据进行操作。
· 可扩展的中枢神经系统,可处理任意数量的源和