Apache Kafka 和 JMS 的区别。
Kafka 和 JMS 都是消息系统。Java 消息服务 (JMS) 是 Java 提供的一个 API,用于在应用程序中实现消息系统。JMS 支持队列和发布/订阅 (主题) 消息系统。对于队列,当第一个消费者消费消息后,消息会从队列中删除,其他消费者无法再获取它。对于主题,多个消费者可以接收每条消息,但其可扩展性要困难得多。
Kafka 是对这两个概念的推广——它允许在同一个消费者组的成员之间进行扩展,但也允许在许多不同的消费者组之间广播相同的消息。Kafka 还提供在新的消费者加入或离开消费者组时的自动再平衡。
序号 | 关键点 | Apache Kafka | JMS |
---|---|---|---|
1 | 基础 | Apache Kafka 是一个分布式发布-订阅消息系统,它接收来自不同来源系统的数据,并实时地将数据提供给目标系统。 | Java 消息服务 (JMS) 是 Java 提供的一个 API,用于在应用程序中实现消息系统。 |
2 | 拉取/推送机制 | 它使用拉取机制,客户端需要每次轮询消息 | 它使用基于推送的模型,消息可以广播到所有消费者 |
3 | 消息保留策略 | 基于策略 | 基于确认 |
4. | 自动再平衡 | 当新的消费者添加到消费者组或从消费者组中移除时,它提供自动再平衡 | 它不提供自动再平衡 |
5 | 消息顺序 | Kafka 确保消息按分区级别发送的顺序接收 | JMS 不支持消息排序。 |
广告