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

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

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);
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5688230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存