当前位置:   article > 正文

SpringBoot整合Rabbitmq踩坑记录_springboot rabbitmq port修改不生效

springboot rabbitmq port修改不生效

SpringBoot整合Rabbitmq踩坑记录

SpringBoot是一个Java后端的快速开发框架,其内置的大量starter及AutoConfig类帮助我们完成了几乎绝大多数日常开发中需要用到的配置,基本上实现开发者开箱即用。但是这样较好的封装性也导致了一些问题,很多自动配置好的东西,新手使用时并不知其原理,可能也不会去编写自定义配置类代码,导致一些蜜汁bug无法定位,考虑到一些跟我一样的新手朋友代码阅读能力有限,或者受限于开发进度无精力深扒源码,这里将遇到的一些蜜汁bug记录下来,提供一些新的解决思路。

开发环境

每个版本的源码可能都有区别,所以我碰到的bug别人未必会碰到,这里确定一下bug出现的相关依赖版本号,springboot-2.3.2.RELEASE,amqp-client-5.9.0,spring-rabbit-2.3.10

An unexpected connection driver error occured

这是一个常见的报错信息,在完成rabbitmq配置后,springboot项目启动时会报这个错,现有很多解决方案,https://blog.csdn.net/qq_54713898/article/details/127829696,主要考虑是配置ip,port,以及用户密码权限,网络连接等问题,这些都做了尝试,报错仍然存在。然后去翻配置文件,发现自己刚在开发时,为了使用rabbitmq的多个vhost功能,在当前项目的配置文件中,增加了vhost配置,自此rabbitmq无法连接。尝试着注释掉这行,报错消失。配置文件信息如下:

  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
    publisher-confirm-type: CORRELATED
    publisher-returns: true
    listener:
      simple:
        prefetch: 1 #预取消息数量
        concurrency: 3
        acknowledge-mode: manual #手动签收
#    virtual-host: /platform
# 蜜汁bug,加了virtual-host登不上
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

topic模式key的通配符问题

这个算不上bug,应该算特性(笑)
在使用topic模式时,指定监听的key为"user:#“,程序正常运行无报错,但是无法从队列中取出数据,可视化界面中也没有看到发送的消息(据说这是可视化界面的bug,消费者没有成功消费的队列不会在GUI中展示)
检查代码,生产者发送的key为user:1,按照通配符#的解释匹配1个或多个单词应该是能匹配到user:#中,随后仔细翻了一些教程,发现现有教程中routekey不同单词间的分隔都是用的“.”,遂进行尝试,修改为"user:.#”,成功消费。看来这里的通配符不能完全理解为正则中的通配符,还是有固定格式的。

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

闽ICP备14008679号