当前位置:   article > 正文

spring boot项目配置mq多数据源_@queuebinding自定义队列名称前缀

@queuebinding自定义队列名称前缀

        网上关于配置类的代码很多,这里博主就不展示了,这里重点解决一下如何在listener中定义队列,交换机,以及指定数据源.这里博主建议定义队列必须在消费者端定义,否则如果在生产者端定义了,没有即使启动消费者去消费,很容易出现消息积压,影响别的正常使用的业务队列.

        主数据源不用特意配置,因为mq默认会使用主数据源,这里主要介绍次数据源的配置.

        具体代码是在定义队列的@Queue,@Exchange,@QueueBinding注解中加上admins的参数,指定启动时扫描注解的数据源,这里如果@Queue,@Exchange注解中不指定,会出现在两个源中同时定义队列交换机的问题,如果@QueueBinding中不指定,会出现启动报错的问题,但是不会影响正常使用,具体报错信息如下:o.s.a.r.c.CachingConnectionFactory:Channel shutdown: channel error;protocol method:#method<channel.close>.

        在@RabbitListener注解中配置containerFactory参数指定队列消费的数据源,如果不指定,无法消费次数据源队列中的消息

  1. @RabbitListener(bindings = @QueueBinding(
  2. value = @Queue(value = queueName", admins = "penetrateRabbitAdmin"),
  3. exchange = @Exchange(value = exchangeName, admins = "penetrateRabbitAdmin", type = ExchangeTypes.FANOUT),
  4. admins = "penetrateRabbitAdmin"),
  5. containerFactory = "fiveConsumerContainer", ackMode = "AUTO", concurrency = "1")

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/789223
推荐阅读
相关标签
  

闽ICP备14008679号