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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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);
|
}
|
|
}
|