我想根据消息头以不同的方式处理传入的消息。如何在 RabbitMQ 中高效实现?
我的听众正在收听来自 present.queue 频道的消息。消息头 KEY 有不同的键:key1,key2。带有 key1 的消息应该由 messageService.method1 处理,带有 key2 的消息应该由 messageService.method2 处理。
这是我正在使用的代码,但显然它是错误的。我可能应该将消息从 present.queue 路由到 first.queue 和 second.queue ?
<!-- RECEIVER -->
<rabbit:queue id="presence.queue" name="presence" durable="true"/>
<rabbit:queue id="first.queue" name="first"/>
<rabbit:queue id="second.queue" name="second"/>
<rabbit:direct-exchange name="presence.direct" durable="true" >
<rabbit:bindings>
<rabbit:binding queue="presence.queue" key="key1"/>
<rabbit:binding queue="presence.queue" key="key2"/>
</rabbit:bindings>
</rabbit:direct-exchange>
<!-- RabbitMQ Asynchronous Receiver from PRESENCE_ENGINE queue -->
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto" >
<rabbit:listener queues="first.queue" ref="messageService" method="method1" />
<rabbit:listener queues="second.queue" ref="messageService" method="method2" />
</rabbit:listener-container>