将 JMS 客户端连接到 Apache Kafka

Posted

技术标签:

【中文标题】将 JMS 客户端连接到 Apache Kafka【英文标题】:Connect JMS client to Apache Kafka 【发布时间】:2017-11-22 23:43:54 【问题描述】:

我有一个第 3 方系统使用 JMS 将数据泵入 HornetQ。我需要用 Kafka 替换 HornetQ,但我无法更改 3rd 方系统。将数据导入kafka的正确方法是什么。

我搜索了一下,发现了JMS-Client 和kafka connect。在阅读了这两个文档后,我很困惑,不确定哪一个是正确的。

有没有人有这方面的经验,可以给我一些关于如何做到这一点的提示?

【问题讨论】:

【参考方案1】:

正确的方法是使用 JMS-Client,因为它是 JMS API 规范的实现,但使用的是 Kafka 有线协议。这意味着您可以在您的第 3 方系统中使用此客户端,并在另一端使用 Kafka 而不是 HornetQ。这意味着至少您需要将此依赖项添加到 3rd 方系统,以便为 Kafka 而不是 HornetQ 使用此 JMS 实现。

【讨论】:

Kafka JMS 客户端是 Confluent Enterprise 3.2 或更高版本的一部分。【参考方案2】:

当您想用 Apache Kafka 替换 JMS 代理时,请使用 Kafka JMS 客户端

当您想将 Kafka 与旧版 JMS 代理集成并在两个不同系统之间发送消息时,请使用 Kafka JMS 连接器。

【讨论】:

以上是关于将 JMS 客户端连接到 Apache Kafka的主要内容,如果未能解决你的问题,请参考以下文章

将 Java 客户端 (JMS) 连接到 IBM MQ 时出现问题

Apache ActiveMQ Artemis 客户端能否连接到现有的 ActiveMQ 代理 5.15.X?

如何从 Websphere 服务器连接到 Weblogic JMS?

从 Qpid JMS 客户端启用 AMQP 1.0 插件连接到 RabbitMQ 3.7.18 时出现错误匹配错误

使用 MQClient java 和 MQExplorer 错误 JMSWMQ2013 将 JMS 连接到 MQ

Kafka 客户端TimeoutException问题之坑