Apache Kafka 与 JMS 的连接

Connection between Apache Kafka and JMS

我想知道 Apache Kafka 可以与 JMS 通信和发送消息吗?我可以在它们之间建立联系吗?例如,我在我的系统中使用 JMS,它应该向使用 Kafka

的其他系统发送消息

回答有点晚,但如果我理解正确的话。

如果要求是同步消息来自 客户端->JMS->Kafka --->消费者 那么以下不是解决方案,但如果它(而且很可能)是异步要求,例如:

客户端->JMS | ----> 卡夫卡 ---> 消费者

然后,这将与KafkaConnect框架有关,该框架解决了如何将不同的sources和sinks与Kafka集成的问题。

http://docs.confluent.io/2.0.0/connect/ http://www.confluent.io/product/connectors

所以您需要的是 JMSSourceConnector。

如果要求与上一个答案相反:

Kafka 生产者 -> Kafka Broker -> JMS Broker -> JMS 消费者

那么您将需要一个 KafkaConnect 接收器,如下面来自 Data Mountaineer 的接收器

http://docs.datamountaineer.com/en/latest/jms.html

不直接。而且两者是不可比的概念。 JMS 是供应商中立的 API 消息服务规范。

虽然 Kafka 可能被归类为消息服务,但它与 JMS 不兼容 API,据我所知,没有简单的方法可以使 JMS 适应 Kafka 的用例而不需要重大妥协。

但是,如果您的需求只是在 Kafka 和符合 JMS 的代理之间移动消息,那么这可以通过编写一个简单的中继应用程序轻松实现,该应用程序从一个代理消费并发布到另一个代理,或者使用类似Kafka Connect,它具有适用于大多数数据源的预装接收器,包括 JMS 代理、数据库等