消息队列有哪些消息模型?

消息队列主要有两种消息模型:队列模型和发布/订阅模型。

  • 队列模型

队列模型是最早出现的消息模型,符合消息队列的"发-存-收"模式。生产者将消息发送到特定的队列中,一个队列可以存储多个生产者的消息,而且可以有多个消费者。但是,在队列模型中,每条消息只能被一个消费者消费,消费者之间是竞争关系。

  • 发布/订阅模型

发布/订阅模型用于将一份消息广播给多个消费者,并且每个消费者都需要接收到全量的消息。在该模型中,消息的发送方称为发布者(Publisher),消息的接收方称为订阅者(Subscriber),而消息存储的容器称为主题(Topic)。发布者将消息发送到特定的主题中,订阅者在接收消息之前需要先订阅该主题。通过订阅,每个订阅者可以接收到主题中的所有消息副本,实现了消息的多路广播。

以上是消息队列中常见的消息模型,选择合适的模型取决于具体的业务需求和系统设计。

发布-订阅模型

它和 “队列模式” 的异同:生产者就是发布者,队列就是主题,消费者就是订阅者,无本质区别。唯一的不同点在于:一份消息数据是否可以被多次消费。

标签: java, Java面试题, RocketMQ, Java问题合集, Java编程, Java问题精选, Java常见问题, RocketMQ面试题