RabbitMqConfig.java
5.83 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
127
128
129
130
131
132
133
134
135
136
137
138
139
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 {
//////////////////////////////////////////////////////// OMO 小屏///////////////////////////////////////////////////////////////
/** 获取带参二维码(大屏->小屏) */
public static final String GET_QR_CODE_QUEUE = "queue.qrCode.get";
/** 删除全部收藏队列(大屏->小屏) */
public static final String COLLECTION_DELETE_ALL_QUEUE = "queue.collection.deleteall";
/** 添加收藏队列(大屏->小屏) */
public static final String COLLECTION_ADD_QUEUE = "queue.collection.add";
/** 删除收藏队列(大屏->小屏) */
public static final String COLLECTION_DELETE_QUEUE = "queue.collection.delete";
/** 微信侧 公众号关注与取消关注 */
public static final String WEIXIN_SUBORUNSUB_QUEUE = "weixin.subOrUnSub.queue";
//////////////////////////////////////////////////////// 重数 ///////////////////////////////////////////////////////////////
/** 路由(事件)--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";
public static final String ENGINE_TO_IPTV_CONSUMER_MEMBER_DIRECT = "engine.iptv.consumer.member.direct";
@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(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(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);
}
}