五大消息模型介绍(RabbitMQ 详细注释版)

名词介绍:

1.生产者:消息发布者,将消息发送到队列 queue
2.队列:消息队列,负责接受并缓存消息
3.消费者:订阅队列,处理队列中的消息

一:模型介绍

1.simple消息模型

    一个生产者  一个队列  一个消费者

        在此种消费模型下,若消费者对消息的处理速度较慢。那么当生产者不断向队列发送消息时,便会造成堵塞。



2.work消息模型
    一个生产者  一个队列  多个消费者
    由此模型衍生的  -> 能者多劳:消费者性能高的可以多消费消息


3. fanout消息模型
一个生产者  一个交换机  多个队列  多个消费者
    这种模型下,生产着会将消息发送至交换机。再由交换机以广播的形式发送给所有消费者,由消费者在自己相应的队列获取消息。
    这种模型存在一个缺点,就是无法对消息进行过滤。于是引出direct消息模型


4. direct消息模型
一个生产者  一个交换机  多个队列  多个消费者(队列绑定交换机时需要指定RoutingKey)
    缺点:RoutingKey是需要提前固定写好的。那么当大量的消息到来时,RoutingKey的指定会影响到性能


5. topic消息模型: 开发中常用此种模型
一个生产者  一个交换机  多个队列  多个消费者(队列绑定交换机时使用的RoutingKey可以使用通配符)
    通配符:* 匹配 一级 任意多个字符,# 匹配 多级 任意多个字符
    例如:routingKey为"user.#",表示可以匹配"user.add"和"user.add.log"。
               routingKey为"user.*",表示可以匹配"user.add",对于"user.add.log"则无法匹配。

二:案例代码

工具类:

1.简答模型

        生产者代码:

消费者代码:

2.工作模型

        生产者代码:

        消费者代码:

3.广播模型

        生产者代码:

        消费者代码:

4.定向模型

        生产者代码:

        消费者代码:

5.通配符模型

        生产者代码:

        消费者代码:

### 回答1: RabbitMQ五大消息模型分别为: 1. 简单模式(Simplest Model) 2. 工作队列模式(Work Queues Model) 3. 发布/订阅模式(Publish/Subscribe Model) 4. 路由模式(Routing Model) 5. 主题模式(Topic Model) 这些模型可以根据应用场景和需求选择合适的消息模型来实现消息传递和处理。 ### 回答2: RabbitMQ是一个基于AMQP协议的开源消息中间件,提供了丰富的消息模型来支持不同的消息传递需求。它的五大消息模型包括: 1. 简单队列模型:也称为点对点模型,一个生产者将消息发送到队列中,一个消费者从队列中接收消息并进行处理。消息被消费后会从队列中删除,只有一个消费者可以接收到消息。 2. 工作队列模型:也称为任务队列模型,多个消费者从同一个队列中接收消息消息的处理是竞争式的,即每个消费者都可以接收到消息,并且消息只会发送给一个消费者进行处理。可以通过设置消息的优先级、消息预取等策略来实现负载均衡或者消息分发。 3. 发布/订阅模型:通过交换机将消息发送给多个队列,消费者可以从不同的队列中接收并处理消息。交换机根据不同的策略将消息路由到队列中,比如fanout、direct、topic等。 4. 路由模型:与发布/订阅模型类似,但是消息通过路由键选择性地发送到不同的队列中。这样可以实现更精细的消息路由,根据不同的路由键将消息发送给不同的队列。 5. 主题模型:也称为通配符模型,它是对路由模型的扩展,通过通配符的方式将消息发送到符合条件的队列中。通过设置模糊匹配的路由键,可以实现更灵活的消息订阅和分发。 总而言之,RabbitMQ五大消息模型提供了灵活、可靠的消息传递机制,可以根据不同的业务需求选择合适的模型来实现高效的消息传递和处理。 ### 回答3: RabbitMQ是一个功能强大的消息中间件,支持多种消息模型,主要包括以下五种: 1. 简单模型(simple model):简单模型是最基本的消息模型,它包括一个生产者和一个消费者,生产者将消息发送到队列中,消费者从队列中接收消息并进行处理。这种模型简单易用,但无法处理消息的持久化、消息应答和消息分发等复杂需求。 2. 工作队列模型(work queue model):工作队列模型是面向任务的消息模型,它包括一个或多个生产者和多个消费者,生产者发送任务消息到一个队列中,多个消费者监听同一个队列,当有任务消息到达时,各个消费者会竞争获取任务进行处理,确保任务的负载均衡。 3. 发布/订阅模型(publish/subscribe model):发布/订阅模型是一对多的消息模型,一个生产者发送消息到一个交换机(Exchange)中,交换机绑定多个队列,消费者分别监听不同的队列,从而实现消息的广播。 4. 路由模型(routing model):路由模型是发布/订阅模型的扩展,它可以将消息按照不同的路由键(routing key)分发到不同的队列中,消费者可以选择监听特定的路由键,从而实现对消息的筛选。 5. 主题模型(topic model):主题模型是路由模型的进一步扩展,它支持通配符的路由键匹配,可以将消息按照不同的主题(topic)分发到不同的队列中,消费者可以选择监听特定的主题,从而实现更加灵活的消息路由。 以上五种消息模型可以根据具体需求选择使用,使得 RabbitMQ 在不同场景下都能提供高效、可靠的消息传递机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值