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

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

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

问题分析:
生产者
msgserver服务
配置文件
解决rabbitmq队列中消息无法消费的问题_第1张图片
可以看出除了自己配置的关于的rabbimq的配置信息,msgserver服务调用configserver统一配置中心服务中的QA2环境的config-rabbitmq-qa2.yml配置文件,
解决rabbitmq队列中消息无法消费的问题_第2张图片
msgserver服务使用JavaConfig配置方式配置RabbitMQ的配置信息
解决rabbitmq队列中消息无法消费的问题_第3张图片
从上述过程可以看出配置的RabbitMQ的虚拟地址是/
这个生产消息的服务有四个队列,其中一个叫做queue_sendemail
解决rabbitmq队列中消息无法消费的问题_第4张图片
以上基本上就是产生的消息会放入queue_sendemail队列中

消费者
proxyserver服务
配置文件
解决rabbitmq队列中消息无法消费的问题_第5张图片
Spring整合RabbitMQ的配置文件
解决rabbitmq队列中消息无法消费的问题_第6张图片
从中可以看出RabbitMQ的虚拟地址是host_qa
监听这个队列的消费者是emailSendListener
解决rabbitmq队列中消息无法消费的问题_第7张图片

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

解决方案:
将上述两个微服务的虚拟地址做统一即可、

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


你可能感兴趣的:(Summarize,异常报错问题整理)