一、问题
开发中遇到:在不止一个rabbitmq数据源时
,通过以下两种方式都不能正常的创建交换机和队列:
- @Configuration + @Bean
- @RabbitListener(bindings) + @QueueBinding + @Queue + @Exchange
二、原因
原因是没指定数据源,springboot不知道该连接哪个数据源。
三、解决
- 服务端可以定义
RabbitAdmin
,通过它声明Exchange、Queue和Binding - 消费端可以通过在
@RabbitListener
中指定containerFactory
来指定数据源
附:一份详细完整的Rabbitmq使用教程与代码
rabbitmq、spring+rabbitmq、springboot+rabbitmq、rabbitmq实现延时队列