我想知道Apache Kafka能否与JMS进行通信并发送消息?我可以在它们之间建立联系吗?例如,我在我的系统中使用JMS,它应该将消息发送到使用Kafka的其他系统
答案 0 :(得分:2)
迟到了,但如果我理解正确的要求。
如果要求是来自的同步消息传递 client-> JMS-> Kafka --->消费者 然后跟随不是解决方案,但如果它(并且很可能)是异步要求,如:
client-> JMS | ---->卡夫卡--->消费者
然后,这将与KafkaConnect框架有关,该框架解决了如何与Kafka集成不同源和接收器的问题。
http://docs.confluent.io/2.0.0/connect/ http://www.confluent.io/product/connectors
所以你需要的是一个JMSSourceConnector。
答案 1 :(得分:0)
如果要求与上一个答案相反:
Kafka Producer - > Kafka Broker - > JMS Broker - > JMS消费者
那么您将需要一个KafkaConnect Sink,如下面的Data Mountaineer
答案 2 :(得分:0)
不是直接的。而这两者是不可比拟的概念。 JMS 是消息服务的供应商中立 API 规范。
虽然 Kafka 可能被归类为消息传递服务,但它与 JMS API 不兼容,据我所知,没有任何简单的方法可以在不做出重大妥协的情况下调整 JMS 以适应 Kafka 的用例。
但是,如果您的需求只是在 Kafka 和符合 JMS 的代理之间移动消息,那么这可以通过编写一个简单的中继应用程序来轻松实现,该应用程序从一个应用程序消费并发布到另一个应用程序,或者使用类似 Kafka Connect,它为大多数数据源(包括 JMS 代理、数据库等)提供了预装的接收器。