RabbitMQ常用的五种模式

本文介绍了RabbitMQ的使用及五种模式。Java可通过springdataRabbit操作,Spring Cloud可用stream结合。五种模式包括简单生产者消费者模式、work模式、发布/订阅模式、路由模式和Topic模式,还提及work模式中设置channel.basicQos(1)可避免资源浪费。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方地址:https://www.rabbitmq.com/getstarted.html
参考:https://www.cnblogs.com/Alva-mu/p/9535396.html
java可以简单使用springdataRabbit来操作,speing cloud 可以用stream来结合,方便以后可以更换成kafka

  1. 简单的生产者消费者模式
    (就是一个生产者发送消息到队列,由一个消费者消费)
    在这里插入图片描述
  2. work模式
    一个生产者对应多个消费者,但是只能有一个消费者获得消息!!!
    如果不设置channel.basicQos(1);,那么 消息队列会均匀发消息给消费者,造成有些消费者处理不来,有些消费者处于空闲,浪费资源。
    如果设置了channel.basicQos(1);,表示同一时刻服务器只会发送一条消息给消费者,哪个消费者空闲,哪个就可以进行消费了。
    在这里插入图片描述
  3. 发布/订阅模式
    图X表示交换器,交换器没有存储消息的能力,消息只能存在队列中。
    这里的交换器类型是fanout。
    生产者发送消息到交换器,交换器绑定了多个队列,只要消费者有监听绑定队列的,都会接收到信息,然后进行消费。在这里插入图片描述
  4. 路由模式
    生产者将消息发送到direct交换器,在绑定队列和交换器的时候有一个routkey,生产者发送的消息会指定一个routkey,那么消息只会发送到相应routkey相同的队列,接着监听该队列的消费者消费信息.
    在这里插入图片描述
  5. Topic模式(主题模式,通配符模式)
    上面的路由模式是根据routkey进行完整的匹配(完全相等才发送消息),这里的通配符模式通俗的来讲就是模糊匹配。
    符号"#“表示匹配一个或多个词,符号”*"表示匹配一个词。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值