1、问题叙述:
该项目配置了10来个mq,应对新开发需求,我也加了一个mq配置,然后在本地代码当中调用,当中接受,与前面写法相似,项目上测试环境测试。发现发送了queue之后本地消费日志没有的bug。
处理方案:
1、检查我的mq的配置,检查代码中对应mq的配置,然后重试
看不出问题出在哪里,寻找方法本地测试
2、本地测试,本地项目启动,使用soapui调用发送queue的facade,测试成功过一次
3、测试环境再次测试,无效,怀疑mq配置有问题,重新配置,依旧无效,服务器代码本地调试,得到的结果还是一样
4、再次本地测试,却没有成功了。问人,观察自己的mq有关的xml参数,更改并重试,依旧无效
5、再仔细排查原因,观察q是否发送到对应的队列,是否有消费动作,发现队列中暂存了我所有发的q,再发现对应的消费者为null。也就是说mq没有对应的消费者,检查同项目其他q,发现却有我本机作为提供者,再次检查代码消费者有关配置,无收获
6、搞不定问技术大牛,抛出问题,排查问题发现是mq分配的线程数不够,并发数*mq数量>原有的配置可分配线程数,将配置中可用线程数加大发现问题解决。
怎么看出是这个问题?
大牛没有明说,但其实日志文件中有过提示:
给mq分配连接的过程一直很慢,甚至>5分钟导致项目像假死一样,不过这个在我本地出现,服务器上没出现类似假死这个问题。原以为是网络与环境的问题,没有深入的思考一下,尴尬。
出现问题原因:
对rabbitMq不熟系,导致质疑自己的配置代码编写过多,印证花费了很多时间
对日志解读不够有经验,这个多多积累
存在即是有理!