Helius
2021-06-21 5812839f3e23bb09e1a9b100b63273a646155709
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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);
    }
 
}