//声明交换机
   @Bean
    public DirectExchange overdueRangeDirectExchange() {
        DirectExchange directExchange = new DirectExchange(ExchangeEnum.OVERDUE_RANGE_EXCHANGE.getName());
        directExchange.setDelayed(true);
        return directExchange;
    }
	//声明队列
     @Bean
    public Queue overdueRangeQueue() {
        Map<String, Object> arguments = new HashMap<>();
        arguments.put("x-dead-letter-exchange", ExchangeEnum.COMMON_DLX.getName());
        arguments.put("x-dead-letter-routing-key", QueueEnum.DEAD_LETTER.getName());
        // 消息过期时间10分钟
        arguments.put("x-message-ttl",600000);
        return new Queue(QueueEnum.OVERDUE_RANGE_QUEUE.getName(),true,false,false,arguments);
    }
    /**
     声明绑定:
     1. 队列交换机绑定
     2. routing key绑定
    **/
    @Bean
    public Binding overdueRangeBinding(DirectExchange overdueRangeDirectExchange, Queue overdueRangeQueue) {
        return BindingBuilder.bind(overdueRangeQueue).to(overdueRangeDirectExchange)
                .with(QueueEnum.OVERDUE_RANGE_QUEUE.getName());
    }
    
   

Exchange路由策略

Direct:消息直接发送routing key绑定queue
Fanout:不需要Routing key,发送到所有绑定exchangequeue
Topic:消息通过正则表达式匹配可以匹配多个queue例如bindingKey = *order可以接受的Routing KeyfirstOrder,ExtenelOrder等
Header:这种类型交换机依赖于路由匹配规则路由信息,而是根据发送消息携带的headers属性进行匹配,在绑定队列交换器是指定一组键值对.当发送的消息到交换机时,RabbitMQ会获取到消息中的headers信息,对比叫交换机中的键值信息是否匹配,如果匹配,消息就会保存到该队列中,headers类型交换性能很差,不建议使用.

原文地址:https://blog.csdn.net/weixin_38193228/article/details/134804474

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_47322.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注