RabbitMQ 在 Spring Boot 进阶之交换器 Fanout Exchange

本文介绍了如何在Spring Boot中利用RabbitMQ的Fanout Exchange来处理无需匹配路由键的业务需求。通过创建Fanout Exchange并绑定多个队列,可以实现消息的广播,使得每个绑定的队列都能接收到消息,适用于横向拓展的业务场景,如用户奖励、日志记录、文件审核等操作。
摘要由CSDN通过智能技术生成

最好阅读一下上篇文章《
RabbitMQ 在 Spring Boot 进阶之交换器 Direct Exchange》

还是这个业务,它负责资料的上传。

它之前的需求是,不同的用户上传后,后续的处理不同。

  • 普通用户上传资料后,可以获得一定的积分。
  • 内部人员上传资料后,不需要积分,但它会增加一定的业绩。

现在又来了一个需求

我们不需要积分和业绩了,要给所有用户一点奖励,还要记录一条日志,甚至还要通知某某人去对上传的资料进行审核。

  • 如果按照之前的做法,那么我们的思路是将生产者代码改成这样
@Component
public class Runner implements CommandLineRunner {
   

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Override
    public void run(String... args) throws Exception {
        System.out.println("Sending message>>>");
        rabbitTemplate.convertAndSend(ExchangeName, rewardQueueName, "一点奖励~");
        rabbitTemplate.convertAndSend(ExchangeName, logQueueName, "一个日志~");
        rabbitTemplate.convertAndSend(ExchangeName, verifyQueueName, "审批~");
        ...
        ...
        ...
    }
}

实际上像这种业务,rabbitMQ为我们提供了一种船新的交换器:Fanout Exchange,它不需要匹配路由键。

  • 我们先声明一个fanout exchange
  • 然后声明三个队列
  • 将队列与exchange进行绑定
package com.example.rabbit_test;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.FanoutExchange;
import org.springframework.amqp.core.Queue;
import org.sprin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值