【发布时间】:2020-06-18 09:01:59
【问题描述】:
我有以下两个 Configuration 类:
@Configuration
@EnableRabbit
@Import({ LocalRabbitConfigA.class, CloudRabbitConfigA.class })
public class RabbitConfigA {
@Autowired
@Qualifier("rabbitConnectionFactory_A")
private ConnectionFactory rabbitConnectionFactory;
@Bean(name = "admin_A")
AmqpAdmin amqpAdmin() {
return new RabbitAdmin(rabbitConnectionFactory);
}
@Bean(name = "Exchange_A")
DirectExchange receiverExchange() {
return new DirectExchange("Exchange_A", true, false);
}
}
和
@Configuration
@EnableRabbit
@Import({ LocalRabbitConfigB.class, CloudRabbitConfigB.class })
public class RabbitConfigB {
@Autowired
@Qualifier("rabbitConnectionFactory_B")
private ConnectionFactory rabbitConnectionFactory;
@Bean(name = "admin_B")
AmqpAdmin amqpAdmin() {
return new RabbitAdmin(rabbitConnectionFactory);
}
@Bean(name = "Exchange_B")
DirectExchange receiverExchange() {
return new DirectExchange("Exchange_B", true, false);
}
}
请注意,LocalRabbitConfigA 和 LocalRabbitConfigB 类定义了连接到不同 VHost 的 connectionFactory。
启动应用程序时(在 Tomcat 中),所有 Exchange 均在 both VHosts 中创建。
问题是如何定义某个 Exchange/Queue 是由特定 ConnectionFactiory 创建的?
所以 VHost A 只包含 Exchange_A,而 VHost B 只包含 Exchange_B ?
【问题讨论】:
-
您是否介意分享配置类的完整代码。我正在尝试实现这样一个场景,我有两个虚拟主机并且我被卡住了。
-
@martinkimani 抱歉,我无法再访问代码了...
标签: java spring rabbitmq-exchange spring-rabbit