SpringBoot 整合 RabbitMQ 使用fanout交换机

依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

配置文件

# 连接地址
spring.rabbitmq.host=127.0.0.1
# 端口号
spring.rabbitmq.port=5672
# 账号
spring.rabbitmq.username=guest
# 密码
spring.rabbitmq.password=guest
# 地址
spring.rabbitmq.virtual-host=myvh

# 消息开启手动确认
#spring.rabbitmq.listener.direct.acknowledge-mode=manual
#采取手动应答
#spring.rabbitmq.listener.simple.acknowledge-mode=manual
#支持重试
#spring.rabbitmq.listener.simple.retry.enabled=true
#最大重试次数
#spring.rabbitmq.listener.simple.retry.max-attempts: 5
#重试间隔次数
#spring.rabbitmq.listener.simple.retry.initial-interval: 3000

配置类

@Configuration
public class RabbitmqConfig {

    //配置Exchange
    @Bean
    public FanoutExchange fanoutExchange() {
        return new FanoutExchange("myfanout");
    }

    // 绑定交换机与队列
    @Bean
    public Binding getMyqueue(FanoutExchange fanoutExchange) {
        Queue queue = new Queue("fanoutqueue");
        return BindingBuilder.bind(queue).to(fanoutExchange);
    }

}

发送消息

@Service
public class RabbitmqProducerService {
    @Autowired
    private AmqpTemplate amqpTemplate;
    public void amqpTemplateTest(){
        String message = UUID.randomUUID().toString().substring(0, 6);
		//myfanout --  交换机Name;
        amqpTemplate.convertAndSend("myfanout","",message);
        System.out.println("发送完成");
    }
}

接收消息

@Component
public class RabbitmqListener {

    @RabbitListeners({@RabbitListener(queues = "fanoutqueue")})
    public void reveiceMessage(String msg, Channel channel, Message message) {
        System.out.println(msg);
        System.out.println(channel);
        System.out.println(message);
    }
    
}
posted @   叕叕666  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示