Apache Kafka是JMS的另一个API吗?

Sam*_*Sam 18 migration jms apache-kafka

是不是Apache Kafka另一个实现JMS

JMS+AMQ在我的应用程序中使用,并迁移到Apache Kafka.我是否需要更改所有JMS代码?

Pix*_*xou 14

不,Kafka与ActiveMQ等JMS系统不同.看ActiveMQ vs Apollo vs Kafka

Kafka的功能少于ActiveMQ,因为压力已经放在了表演上.因此,在迁移之前,请检查您在AMQ中使用的功能是否在Kafka中.

但是,有一个公开的建议,建立JMS和Kafka之间的桥梁,以准确地提供您所需要的.也许提供的链接可以帮助您 https://issues.apache.org/jira/browse/KAFKA-1995


Joh*_*ink 13

实际上,两者并不相同。有更多的时间看到这两者共存 - 并听取现场部署人员的问题和快乐点 - 关于每一个都有更多话要说。

首先,JMS支持点对点消息传递(将消息发送给单个消费者;消费者自己维护他们的消息队列)和发布订阅(pub/sub)模型(将消息写入单个主题,而消费者独立地决定要消费哪些消息)。

在点对点消息传递架构中,消息生产者和消费者彼此认识,而在发布/订阅模型中他们不认识。Apache Kafka专注于发布/订阅模型,维护一个单独的日志/主题,消费者从中读取偏移量。Kafka也是为云而建高吞吐量是核心考虑

我们社区和聚会中的许多人对 JMS 等 MOM(面向消息的中间件)感到沮丧,并转向 Kafka,原因归结为一个原因:可扩展性。他们认为 Kafka 比其他 MOM 更适合扩展,因为 Kafka 维护一个分区的主题日志。这样做,Kafka 可以通过分区将消息流拆分到消费者组并批量传输消息。

这个概念还允许 Kafka 对 Kafka 消费者的 ACL(访问控制)进行更精细的控制,尽管那里存在一些问题,Apache Pulsar 正在解决这些问题。

最后,在 Kafka 上,由于客户端/消费者决定使用哪些消息(通过主题中的偏移量),这消除了内置于 JMS 等 MOM 中的路由规则的一些生产者端复杂性。

还有比这更多的差异,但这是一些不断出现的差异的提炼!希望这可以帮助。