互联网面试宝典

您现在的位置是: 首页 > 消息队列

问题详情

RocketMQ 中的 Topic 和 JMS 的 queue 有什么区别?

面试宝典 2023-06-12 Web前端开发工程师 63
RocketMQ 中的 Topic 类似于 JMS 中的 Topic,都是一种发布订阅模型,消息生产者将消息发布到 Topic,消息消费者订阅 Topic,所有订阅同一个 Topic 的消费者都会收到相同的消息。

JMS 的 queue 则是一种点对点模型,消息生产者将消息发送到队列中,只有一个消费者能够消费该消息,其他消费者不能再次消费。而 RocketMQ 中的队列是在 Topic 的基础上,将 Topic 再细分为多个队列,每个队列都可以有多个消费者消费其中的消息,消息生产者将消息发布到 Topic 的某个队列中。

因此,RocketMQ 的 Topic 可以支持发布订阅和点对点两种模型,而 JMS 的 queue 只能支持点对点模型。此外,RocketMQ 的 Topic 可以根据需求自由扩展队列数量,而 JMS 的 queue 需要事先指定固定的队列数量。