问题描述:
生产者发送消息到队列成功,但是队列中的消息始终没有消费
问题分析:
生产者
msgserver服务
配置文件

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

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

从上述过程可以看出配置的RabbitMQ的虚拟地址是/
这个生产消息的服务有四个队列,其中一个叫做queue_sendemail

以上基本上就是产生的消息会放入queue_sendemail队列中
消费者
proxyserver服务
配置文件

Spring整合RabbitMQ的配置文件

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

问题所在:
看了上述两个关于RibbitMQ的配置,发现了问题所在,两个服务是配置了同一个消息队列,但是他们的虚拟地址是不一样的,生产者只向队列中发送消息,但是消费者的一端监听的并非这个虚拟地址的队列,因此无法消费消息
解决方案:
将上述两个微服务的虚拟地址做统一即可、
总结:
RabbitMQ后台管理界面的使用是一个很重要的东西。
网友评论