栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RabbitMQ整合springboot(三)---消息回退之交换机或队列未收到消息

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RabbitMQ整合springboot(三)---消息回退之交换机或队列未收到消息

(一)、配置文件
@Configuration
public class ConfirmConfig {
    public static final String /confirm/i_EXCHANGE = "/confirm/i_exchange";
    public static final String /confirm/i_QUEUE = "/confirm/i_queue";
    public static final String /confirm/i_ROUTING_KEY = "/confirm/i_routing_key";

    //声明交换机
    @Bean("/confirm/iExchange")
    public DirectExchange confirmExchange() {
        return new DirectExchange(/confirm/i_EXCHANGE);
    }

    //声明队列
    @Bean("/confirm/iQueue")
    public Queue confirmQueue() {
        return QueueBuilder.durable(/confirm/i_QUEUE).build();
    }

    //绑定
    @Bean("/confirm/iQueueBinding")
    public Binding confirmQueueBinding(@Qualifier("/confirm/iQueue") Queue /confirm/iQueue,
                                       @Qualifier("/confirm/iExchange") DirectExchange /confirm/iExchange) {
        return BindingBuilder.bind(/confirm/iQueue).to(/confirm/iExchange).with(/confirm/i_ROUTING_KEY);
    }
}
(二)、消息生产者
@RestController
@RequestMapping("//confirm/i")
public class ConfirmController {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @GetMapping("/send/confirm/i")
    public void sendConfirm(@RequestParam("msg") String msg) {
        CorrelationData correlationData = new CorrelationData("1");
        CorrelationData correlationData2 = new CorrelationData("2");
        rabbitTemplate.convertAndSend(/confirm/iConfig./confirm/i_EXCHANGE, /confirm/iConfig./confirm/i_ROUTING_KEY, msg+"key1", correlationData);
        log.info("发送信息{} ", msg+"key1");
        rabbitTemplate.convertAndSend(/confirm/iConfig./confirm/i_EXCHANGE, /confirm/iConfig./confirm/i_ROUTING_KEY+"key2", msg+"key2", correlationData2);
        log.info("发送信息{} ", msg+"key2--错误");
    }
}
(3)、消息消费者
@Slf4j
@Component
public class ConfirmConsumer {

    @RabbitListener(queues =/confirm/iConfig./confirm/i_QUEUE)
    public void receive(Message message) {
        String s = new String(message.getBody());
        log.info("队列接收到信息=={}, routingkey为{/confirm/i_routing_key}", s);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/686970.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号