Java

解决rabbitmq队列中消息无法消费的问题

2022-07-16  本文已影响0人  Java熬夜党
问题描述:

生产者发送消息到队列成功,但是队列中的消息始终没有消费

问题分析:

生产者
msgserver服务
配置文件

image.png

可以看出除了自己配置的关于的rabbimq的配置信息,msgserver服务调用configserver统一配置中心服务中的QA2环境的config-rabbitmq-qa2.yml配置文件,

image.png

msgserver服务使用JavaConfig配置方式配置RabbitMQ的配置信息

image.png

从上述过程可以看出配置的RabbitMQ的虚拟地址是/

这个生产消息的服务有四个队列,其中一个叫做queue_sendemail

image.png

以上基本上就是产生的消息会放入queue_sendemail队列中

消费者
proxyserver服务
配置文件

image.png

Spring整合RabbitMQ的配置文件

image.png

从中可以看出RabbitMQ的虚拟地址是host_qa
监听这个队列的消费者是emailSendListener

image.png
问题所在:

看了上述两个关于RibbitMQ的配置,发现了问题所在,两个服务是配置了同一个消息队列,但是他们的虚拟地址是不一样的,生产者只向队列中发送消息,但是消费者的一端监听的并非这个虚拟地址的队列,因此无法消费消息

解决方案:

将上述两个微服务的虚拟地址做统一即可、

总结:

RabbitMQ后台管理界面的使用是一个很重要的东西。

上一篇 下一篇

猜你喜欢

热点阅读