如何将消息直接从现有的大型机应用程序发布到 Kafka 主题?

Posted

技术标签:

【中文标题】如何将消息直接从现有的大型机应用程序发布到 Kafka 主题?【英文标题】:How to publish messages directly from existing Mainframe application to Kafka topics? 【发布时间】:2017-08-06 02:52:16 【问题描述】:

我们计划在未来用 Apache Kafka 替换 IBM MQ,以实现发布-订阅用例。目前大型机(运行 Z/OS)应用程序是使用 COBOL 编程语言编写的并将消息推送到 MQ。我浏览了文档以了解 Kafka 支持的客户端,似乎它不支持 COBOL。

在 Mainframe 上构建生产者并将消息直接发布到 Kafka 主题的最佳方法是什么,而对现有应用程序的更改最少?

【问题讨论】:

【参考方案1】:

很多选择。您可以使用任何语言的任何 REST/HTTP 客户端发布到 Kafka。您可以将 WebSphere MQ 留在 zOS 上并运行外部 Kafka 源连接器以从 MQ 中提取并放入 Kafka。您可以写入 DB2 或其他数据库,并使用许多 CDC 工具(包括 IBM InfoSphere)将数据库更新发送到 Kafka。您可以使用 Confluent JMS 客户端使用 Java 进行发布。您可以帮助完成让 librdkafka C 客户端在 zOS 上原生运行的工作。您可以通过 Confluent REST 代理将 Datapower 用作大型机应用程序和 Kafka 之间的 ESB 网关。这完全取决于您的用例,哪个选项是最好的。

一些兴趣链接:

Confluent Kafka JMS 客户端 http://docs.confluent.io/current/clients/kafka-jms-client/docs/index.html

用于 JMS 的 DataMountaineer Kafka 连接器 来源:http://docs.datamountaineer.com/en/latest/jms-source.html

接收器:http://docs.datamountaineer.com/en/latest/jms.html

【讨论】:

感谢汉斯分享链接。是否还有适用于 IBM MQ 的 Kafka 源连接器? 顺便说一句,JMS 客户端不是仅用于现有的 JMS 代理吗?我们能否将相同的功能用于 IBM MQ 以及在 zOS 上运行? Ask here 是替换 MQ 并开始将消息直接从 Mainframe 应用程序发布到 Kafka 主题。没有任何额外的跳跃是否可行? 有人甚至启动了 librdkafka 的 z/OS 端口吗?从 github repo 的快速浏览来看,似乎并非如此。如果有市场,它看起来不会太难。 @HansJespersen,那么我们可以说 IBM MQ 没有 Kafka 源连接器吗?我们需要利用一些客户端库,例如 librdkafka C 客户端或 Java,它们可以在 ZOS 上原生运行。否则,使用 IIB 从 MQ 拉取消息并发布到 Kafka 主题? 如果您想了解有关所有集成选项的更多信息,请直接联系 Confluent,因为 *** 不是了解所有详细信息或定价的最佳场所。【参考方案2】:

我假设您想将 z/OS DB2 更改发布到 Kafka。对我们来说 MIPS 最低的解决方案是 IBM InfoSphere CDC for z/OS,以及其他 IBM 部件#D1RC9LL。如果您的预算允许高 CAPEX 和低 OPEX,那么这就是您的最佳选择。

【讨论】:

【参考方案3】:

现在CICS支持向Kafka发送消息,看看这个链接

https://developer.ibm.com/cics/2020/01/06/cics-and-kafka-integration/

【讨论】:

以上是关于如何将消息直接从现有的大型机应用程序发布到 Kafka 主题?的主要内容,如果未能解决你的问题,请参考以下文章

从现有的 MS Access 表自动生成 SQL

从现有的 .cpp 和 .h 文件在 QtCreator 中创建 Vanilla C++ 项目

将 Live iPhone 应用程序从现有的苹果开发者账户转移到另一个有间隔期的账户

如何从现有的单表数据库中填充合理的多表 MySQL 数据库?

如何从现有的 iPhone 代码库发布 iPad 应用程序?

如何从现有的 android 应用程序从头开始 android 应用程序?