常见的消息队列模型主要有发布/订阅模型 和队列模型(也称点对点模型)两种。
那什么是队列模型呢?所谓的队列模型,指的是消息从生产者发送到队列中,其中的消息只能被一个消费者消费一次,在消费者消费完之后,消息就在队列中被删除了。
而发布/订阅模型,则指的是生产者将消息发布到某个Topic中,这样所有订阅了这个主题的消费者都可以接收到这个消息,这种模型比较适用于像广播通知和实时推送这样的场景。
需要说明的是,RabbitMQ虽然具有发布/订阅模式,但是在本质上RabbitMQ还是通过同时将消息发送给多个队列来模拟出发布/订阅的效果,其底层依然是基于队列模型的。
而RocketMQ和Kafka则都是采用发布/订阅模型的。