package com.xzx.log.config; import com.xzx.log.constants.MqConstants; import lombok.Data; import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; @Configuration public class LogQueueConfig { //直连交换机 private String LOG_EXCHANGE = "log_exchange"; /** * 定义死信队列相关信息 */ public final static String deadRoutingKey = "dead_routing_key"; public final static String deadExchange = "dead_exchange"; /** * 死信队列 交换机标识符 */ public static final String DEAD_EXCHANGE = "x-dead-letter-exchange"; /** * 死信队列交换机绑定键标识符 */ public static final String DEAD_ROUTING_KEY = "x-dead-letter-routing-key"; // 定义队列 // @Bean // public Queue accountLogQueue() { // return new Queue(MqConstants.ACCOUNT_LOG_QUEUE); // } @Bean public Queue intefaceAdminLogQueue() { Map args = new HashMap<>(2); args.put(DEAD_EXCHANGE, deadExchange); args.put(DEAD_ROUTING_KEY, deadRoutingKey); return new Queue(MqConstants.INTEFACE_ADMIN_LOG_QUEUE,true,false,false,args); } @Bean public Queue operationAppLogQueue() { Map args = new HashMap<>(2); args.put(DEAD_EXCHANGE, deadExchange); args.put(DEAD_ROUTING_KEY, deadRoutingKey); return new Queue(MqConstants.OPERATION_APP_LOG_QUEUE,true,false,false,args); } // @Bean // public Queue operationLogQueue() { Map args = new HashMap<>(2); // args.put(DEAD_EXCHANGE, deadExchange); // args.put(DEAD_ROUTING_KEY, deadRoutingKey); // return new Queue(MqConstants.OPERATION_LOG_QUEUE,true,false,false,args); // } // @Bean // public Queue orderOperationLogQueue() { // Map args = new HashMap<>(2); // args.put(DEAD_EXCHANGE, deadExchange); // args.put(DEAD_ROUTING_KEY, deadRoutingKey); // return new Queue(MqConstants.ORDER_OPERATION_LOG_QUEUE,true,false,false,args); // } // @Bean // public Queue payInfoLogQueue() { // Map args = new HashMap<>(2); // args.put(DEAD_EXCHANGE, deadExchange); // args.put(DEAD_ROUTING_KEY, deadRoutingKey); // return new Queue(MqConstants.PAY_INFO_LOG_QUEUE,true,false,false,args); // } @Bean public Queue sysProgramLogQueue() { Map args = new HashMap<>(2); args.put(DEAD_EXCHANGE, deadExchange); args.put(DEAD_ROUTING_KEY, deadRoutingKey); return new Queue(MqConstants.SYS_PROGRAM_LOG_QUEUE,true,false,false,args); } // @Bean // public Queue tradeAccountQueue() { // Map args = new HashMap<>(2); // args.put(DEAD_EXCHANGE, deadExchange); // args.put(DEAD_ROUTING_KEY, deadRoutingKey); // return new Queue(MqConstants.TRADE_ACCOUNT_LOG_QUEUE,true,false,false,args); // } //定义交换机 @Bean public DirectExchange logExchange() { return new DirectExchange(LOG_EXCHANGE); } //绑定交换机 // @Bean // Binding bindingaccountLogQueue(Queue accountLogQueue, DirectExchange logExchange) { // return BindingBuilder.bind(accountLogQueue).to(logExchange).with(MqConstants.ACCOUNT_LOG_QUEUE); // } // @Bean // Binding bindingtradeAccountQueue(Queue tradeAccountQueue, DirectExchange logExchange) { // return BindingBuilder.bind(tradeAccountQueue).to(logExchange).with(MqConstants.TRADE_ACCOUNT_LOG_QUEUE); // } @Bean Binding bindingintefaceAdminLogQueue(Queue intefaceAdminLogQueue, DirectExchange logExchange) { return BindingBuilder.bind(intefaceAdminLogQueue).to(logExchange).with(MqConstants.INTEFACE_ADMIN_LOG_QUEUE); } @Bean Binding bindingoperationAppLogQueue(Queue operationAppLogQueue, DirectExchange logExchange) { return BindingBuilder.bind(operationAppLogQueue).to(logExchange).with(MqConstants.OPERATION_APP_LOG_QUEUE); } // @Bean // Binding bindingoperationLogQueue(Queue operationLogQueue, DirectExchange logExchange) { // return BindingBuilder.bind(operationLogQueue).to(logExchange).with(MqConstants.OPERATION_LOG_QUEUE); // } // @Bean // Binding bindingorderOperationLogQueue(Queue orderOperationLogQueue, DirectExchange logExchange) { // return BindingBuilder.bind(orderOperationLogQueue).to(logExchange).with(MqConstants.ORDER_OPERATION_LOG_QUEUE); // } // @Bean // Binding bindingpayRequestInfoQueue(Queue payInfoLogQueue, DirectExchange logExchange) { // return BindingBuilder.bind(payInfoLogQueue).to(logExchange).with(MqConstants.PAY_INFO_LOG_QUEUE); // } @Bean Binding bindingsysProgramLogQueue(Queue sysProgramLogQueue, DirectExchange logExchange) { return BindingBuilder.bind(sysProgramLogQueue).to(logExchange).with(MqConstants.SYS_PROGRAM_LOG_QUEUE); } /** * 创建配置死信队列 * * @return */ @Bean public Queue deadQueue() { Queue queue = new Queue(MqConstants.DEAD_QUEUE, true); return queue; } /* * 创建死信交换机 */ @Bean public DirectExchange deadExchange() { return new DirectExchange(deadExchange); } /* * 死信队列与死信交换机绑定 */ @Bean public Binding bindingDeadExchange(Queue deadQueue, DirectExchange deadExchange) { return BindingBuilder.bind(deadQueue).to(deadExchange).with(deadRoutingKey); } }