场景:MQ的服务端和客户端,分别在两个服务上面(一个是传统spring,另一个是springboot)
问题:客户端接不到消息
客户端代码:
<rabbit:template id="amqpTemplate" exchange="test.exchange" connection-factory="rabbitConnectionFactory" message-converter="jsonMessageConverter" />
<rabbit:queue id="testQueue" name="test.queue" durable="true" auto-delete="false" exclusive="false"/>
<rabbit:fanout-exchange name="test.exchange" durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="testQueue"/>
</rabbit:bindings>
</rabbit:fanout-exchange>
改为如下后,能够正常接收消息
<rabbit:queue id="testQueue" name="test.queue" durable="true" auto-delete="false" exclusive="false"/>
<rabbit:fanout-exchange name="test.exchange" durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="testQueue"/>
</rabbit:bindings>
</rabbit:fanout-exchange>
原因分析:
rabbitMQ的服务端和客户端同时声明exchange导致的消息异常