|
@@ -0,0 +1,95 @@
|
|
|
|
|
+package com.fdkankan.task.config;
|
|
|
|
|
+
|
|
|
|
|
+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.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;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * RabbitMq多源配置
|
|
|
|
|
+ *
|
|
|
|
|
+ * @author lq
|
|
|
|
|
+ */
|
|
|
|
|
+@Configuration
|
|
|
|
|
+public class RabbitConfig {
|
|
|
|
|
+
|
|
|
|
|
+ @Bean(name = "v2ConnectionFactory")
|
|
|
|
|
+ @Primary
|
|
|
|
|
+ public ConnectionFactory v2ConnectionFactory(
|
|
|
|
|
+ @Value("${spring.rabbitmq.v2.host}") String host,
|
|
|
|
|
+ @Value("${spring.rabbitmq.v2.port}") int port,
|
|
|
|
|
+ @Value("${spring.rabbitmq.v2.username}") String username,
|
|
|
|
|
+ @Value("${spring.rabbitmq.v2.password}") String password,
|
|
|
|
|
+ @Value("${spring.rabbitmq.v2.virtual-host}") String virtualHost
|
|
|
|
|
+ ) {
|
|
|
|
|
+ CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
|
|
|
|
|
+
|
|
|
|
|
+ connectionFactory.setHost(host);
|
|
|
|
|
+ connectionFactory.setPort(port);
|
|
|
|
|
+ connectionFactory.setUsername(username);
|
|
|
|
|
+ connectionFactory.setPassword(password);
|
|
|
|
|
+ connectionFactory.setVirtualHost(virtualHost);
|
|
|
|
|
+ return connectionFactory;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean(name = "v3ConnectionFactory")
|
|
|
|
|
+ public ConnectionFactory v3ConnectionFactory(
|
|
|
|
|
+ @Value("${spring.rabbitmq.v3.host}") String host,
|
|
|
|
|
+ @Value("${spring.rabbitmq.v3.port}") int port,
|
|
|
|
|
+ @Value("${spring.rabbitmq.v3.username}") String username,
|
|
|
|
|
+ @Value("${spring.rabbitmq.v3.password}") String password,
|
|
|
|
|
+ @Value("${spring.rabbitmq.v3.virtual-host}") String virtualHost
|
|
|
|
|
+ ) {
|
|
|
|
|
+ CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
|
|
|
|
|
+ connectionFactory.setHost(host);
|
|
|
|
|
+ connectionFactory.setPort(port);
|
|
|
|
|
+ connectionFactory.setUsername(username);
|
|
|
|
|
+ connectionFactory.setPassword(password);
|
|
|
|
|
+ connectionFactory.setVirtualHost(virtualHost);
|
|
|
|
|
+ return connectionFactory;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean(name = "v2RabbitTemplate")
|
|
|
|
|
+ @Primary
|
|
|
|
|
+ public RabbitTemplate v2RabbitTemplate(
|
|
|
|
|
+ @Qualifier("v2ConnectionFactory") ConnectionFactory connectionFactory
|
|
|
|
|
+ ) {
|
|
|
|
|
+ RabbitTemplate v2RabbitTemplate = new RabbitTemplate(connectionFactory);
|
|
|
|
|
+ return v2RabbitTemplate;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean(name = "v3RabbitTemplate")
|
|
|
|
|
+ public RabbitTemplate v3RabbitTemplate(
|
|
|
|
|
+ @Qualifier("v3ConnectionFactory") ConnectionFactory connectionFactory
|
|
|
|
|
+ ) {
|
|
|
|
|
+ RabbitTemplate v3RabbitTemplate = new RabbitTemplate(connectionFactory);
|
|
|
|
|
+ return v3RabbitTemplate;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Bean(name = "v2Factory")
|
|
|
|
|
+ public SimpleRabbitListenerContainerFactory v2Factory(
|
|
|
|
|
+ SimpleRabbitListenerContainerFactoryConfigurer configurer,
|
|
|
|
|
+ @Qualifier("v2ConnectionFactory") ConnectionFactory connectionFactory
|
|
|
|
|
+ ) {
|
|
|
|
|
+ SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
|
|
|
|
|
+ configurer.configure(factory, connectionFactory);
|
|
|
|
|
+ return factory;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean(name = "v3Factory")
|
|
|
|
|
+ public SimpleRabbitListenerContainerFactory v3Factory(
|
|
|
|
|
+ SimpleRabbitListenerContainerFactoryConfigurer configurer,
|
|
|
|
|
+ @Qualifier("v3ConnectionFactory") ConnectionFactory connectionFactory
|
|
|
|
|
+ ) {
|
|
|
|
|
+ SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
|
|
|
|
|
+ configurer.configure(factory, connectionFactory);
|
|
|
|
|
+ return factory;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|