RabbitMqConfig.java
5.33 KB
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
package com.topdraw.config;
import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
@Configuration
public class RabbitMqConfig {
/** 路由(事件)--direct route.key*/
// 事件,uc-gateway
public static final String UC_ROUTE_KEY_DIRECT_EVENT_AAA = "uc.route.key.direct.event.aaa";
// uc-service 服务侧
public static final String UC_ROUTE_KEY_DIRECT_EVENT_BBB = "uc.route.key.direct.event.bbb";
// uc-service 管理侧
public static final String UC_ROUTE_KEY_DIRECT_EVENT_CCC = "uc.route.key.direct.event.ccc";
@Value("${mutil-mq.service.host}")
private String serviceHost;
@Value("${mutil-mq.service.port}")
private Integer servicePort;
@Value("${mutil-mq.service.username}")
private String serviceUserName;
@Value("${mutil-mq.service.password}")
private String servicePassword;
@Value("${mutil-mq.service.virtual-host}")
private String serviceVirtualHost;
@Bean(name = "serviceConnectionFactory")
@Primary
public ConnectionFactory serviceConnectionFactory(){
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
/*connectionFactory.setHost("139.196.145.150");
connectionFactory.setPort(5672);
connectionFactory.setUsername("admin");
connectionFactory.setPassword("Topdraw1qaz");
connectionFactory.setVirtualHost("member_center");*/
connectionFactory.setHost(serviceHost);
connectionFactory.setPort(servicePort);
connectionFactory.setUsername(serviceUserName);
connectionFactory.setPassword(servicePassword);
connectionFactory.setVirtualHost(serviceVirtualHost);
return connectionFactory;
}
@Bean(name = "serviceRabbitListenerContainerFactory")
@Primary
public RabbitListenerContainerFactory userCenterRabbitListenerContainerFactory(
SimpleRabbitListenerContainerFactoryConfigurer containerFactoryConfigurer,
@Qualifier("serviceConnectionFactory") ConnectionFactory connectionFactory) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
containerFactoryConfigurer.configure(factory,connectionFactory);
return factory;
}
@Bean(name = "serviceRabbitTemplate")
public RabbitTemplate userCenterRabbitTemplate(ConnectionFactory ucServiceConnectionFactory){
RabbitTemplate u = new RabbitTemplate(ucServiceConnectionFactory);
return u;
}
@Value("${mutil-mq.management.host}")
private String managementHost;
@Value("${mutil-mq.management.port}")
private Integer managementPort;
@Value("${mutil-mq.management.username}")
private String managementUserName;
@Value("${mutil-mq.management.password}")
private String managementPassword;
@Value("${mutil-mq.management.virtual-host}")
private String managementVirtualHost;
@Bean(name = "managementConnectionFactory")
public ConnectionFactory managementConnectionFactory(){
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
/*connectionFactory.setHost("139.196.192.242");
connectionFactory.setPort(5672);
connectionFactory.setUsername("member_center");
connectionFactory.setPassword("Tjlh@2021");
connectionFactory.setVirtualHost("member_center");*/
connectionFactory.setHost(managementHost);
connectionFactory.setPort(managementPort);
connectionFactory.setUsername(managementUserName);
connectionFactory.setPassword(managementPassword);
connectionFactory.setVirtualHost(managementVirtualHost);
return connectionFactory;
}
@Bean(name = "managementRabbitListenerContainerFactory")
public RabbitListenerContainerFactory memberServiceRabbitListenerContainerFactory(
SimpleRabbitListenerContainerFactoryConfigurer containerFactoryConfigurer,
@Qualifier("managementConnectionFactory") ConnectionFactory connectionFactory) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
containerFactoryConfigurer.configure(factory,connectionFactory);
return factory;
}
@Bean(name = "managementRabbitTemplate")
public RabbitTemplate memberServiceRabbitTemplate(ConnectionFactory ucGatewayConnectionFactory){
RabbitTemplate u = new RabbitTemplate(ucGatewayConnectionFactory);
return u;
}
/**
* 处理事件
* @return org.springframework.amqp.core.Queue
* @author XiangHan
* @date 2021/9/7 10:19 上午
*/
@Bean
public Queue eventDirect() {
return new Queue(UC_ROUTE_KEY_DIRECT_EVENT_AAA);
}
}