EasyNetQ让.net的开发者很方便的使用RabbitMQ的Api
我是在17年接触并一直使用到现在,当时开发的小应用使用的版本还是1.x的,现在EasyNetQ都到6.x了。那时候我们使用1.x写了一个消费者端,专门用于队列中消息消费的。
今年我们把我们的一个子应用使用.net core进行了重构,在使用EasyNetQ进行生产了一条消息到队列时,发现消费者并没有订阅消费消息。
一顿调试后,消息是publish成功的,消费者也是监听着队列的,然而就是不消费。难道是EasyNetQ的版本问题?
然后又是一顿操作,写了几个控制台程序进行验证我的猜想,经测试同版本的EasyNetQ生产-----消费竟然是成功的,当时就来了句卧槽,难道不同的版本就不能进行通信了?
带着疑问又是一顿度娘,然而并没有找到解决方案,又带着疑问去github找issues,我觉得我遇到的问题应该有前辈也遇到到了,嗯,果然被我找到了。
在EasyNetQ的issue找到这个:Are Queue Naming Conventions different accross versions of the library?
原因:在v3版本之前exchange name用冒号分隔,之后的版本使用逗号分隔
解决方案:https://github.com/EasyNetQ/EasyNetQ/wiki/Enable-Legacy-Conventions
按照它的做法,我的问题就解决了,在此记录一下。