未分类 · 2024年5月27日 0

记录一个rabbitMq连接配置错误的排错过程

这是错误的地址配置和端口配置

(本机端口已改5673)

这里错把spring.rabbitmq.addresses当成spring.rabbitmq.host使用,导致生成RabbitConnectionFactoryBean连接时使用的是默认端口,而不是修改后的5673。
通过RabbitAutoConfiguration类我们可以发现:
点进RabbitProperties类的determinePort()
可以看到如果parsedAddresses不为空的话,我们自己配置的port是不生效的
这个parsedAddresses是在何时被设置的呢?就是在我们设置了spring.rabbitmq.addresses配置时一起设置的
parseAddresses(String addresses)方法中,通过解析配置的addresses来获取配置的主机和端口,然后通过Address类的有参构造器生成其对象进而生成parseAddresses属性。

所以如果配置 spring.rabbitmq.addresses 就不要配置单独配置host和port,并且addresses的配置方式为host:port。