• RabbitMQ 死信队列 延时


    package com.hs.services.config;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.springframework.amqp.core.Binding;
    import org.springframework.amqp.core.BindingBuilder;
    import org.springframework.amqp.core.DirectExchange;
    import org.springframework.amqp.core.Queue;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * rabbitmq 配置
     * @author ZHANGYUKUN
     *
     */
    @Configuration
    public class RabbitMQConfig {
        
        //钱包交换机
        public static final String walletExchange  = "walletExchange";
        
        //红包交换机
        public static final String redpacketExchange  = "redpacketExchange";
        
        @Bean
        public DirectExchange walletExchange() {
            return new DirectExchange(RabbitMQConfig.walletExchange, true, false);
        }
        @Bean
        public DirectExchange redpacketExchange() {
            return new DirectExchange(RabbitMQConfig.redpacketExchange, true, false);
        }
        
        
        
        
        
        
        
    
        /**
         * 钱包
         */
        public static final String walletAmountChange = "walletAmountChange";
        public static final String walletAmountChangeDL = "walletAmountChangeDL";
        
        /**
         * 红包
         */
        public static final String redpacketChange = "redpacketChange";
        public static final String redpacketChangeDL = "redpacketChangeDL";
    
        
        /**
         * 钱包余额 相关
         * @return
         */
        @Bean
        public Queue walletAmountChange() {
            return new Queue( RabbitMQConfig.walletAmountChange );
        }
        @Bean
        public Queue walletAmountChangeDL() {
            Map<String, Object> arguments = new HashMap<>();
            arguments.put("x-dead-letter-exchange", RabbitMQConfig.walletExchange);
            arguments.put("x-dead-letter-routing-key", RabbitMQConfig.walletAmountChangeDL);
            return new Queue(RabbitMQConfig.walletAmountChangeDL, true, false, false, arguments);
        }
        @Bean
        public Binding  walletAmountChangeBind(Queue walletAmountChange ,DirectExchange walletExchange ) {
            return BindingBuilder.bind( walletAmountChange ).to( walletExchange ).with( RabbitMQConfig.walletAmountChange );
        }
        @Bean
        public Binding  walletAmountChangeBindDL(Queue walletAmountChangeDL ,DirectExchange walletExchange ) {
            return BindingBuilder.bind( walletAmountChangeDL ).to( walletExchange ).with( RabbitMQConfig.walletAmountChangeDL );
        }
        
        
        
        /**
         * 钱包余额 相关
         * @return
         */
        @Bean
        public Queue redpacketChange() {
            return new Queue( RabbitMQConfig.redpacketChange );
        }
        @Bean
        public Queue redpacketChangeDL() {
            Map<String, Object> arguments = new HashMap<>();
            arguments.put("x-dead-letter-exchange", RabbitMQConfig.redpacketExchange);
            arguments.put("x-dead-letter-routing-key", RabbitMQConfig.redpacketChangeDL);
            return new Queue(RabbitMQConfig.redpacketChangeDL, true, false, false, arguments);
        }
        @Bean
        public Binding  redpacketChangeBind(Queue redpacketChange ,DirectExchange redpacketExchange ) {
            return BindingBuilder.bind( redpacketChange ).to( redpacketExchange ).with( RabbitMQConfig.redpacketChange );
        }
        @Bean
        public Binding redpacketChangeBindDL(Queue redpacketChangeDL ,DirectExchange redpacketExchange ) {
            return BindingBuilder.bind( redpacketChangeDL ).to( redpacketExchange ).with( RabbitMQConfig.redpacketChangeDL );
        }
     
    
    }

    上述 ,配了 死信队列,如果 如果 发送到 死信里面的消息 如果 超时,就会被转交给 对应的  正常队列。 死信 的这个特点可以做延时消息。

  • 相关阅读:
    壁纸网站收藏
    LaTeX公式学习
    最简单的音乐播放器,实现播放器基本功能
    计算机视觉领域的牛人博客、研究机构、博客
    视频压缩编码和音频压缩编码的基本原理
    MPEG-4 压缩编码标准
    视频编码标准简介
    视频压缩编码的基本原理
    数字视频原理
    视频压缩编码综述
  • 原文地址:https://www.cnblogs.com/cxygg/p/10607366.html
Copyright © 2020-2023  润新知