我正在尝试在具有Azure Service Bus使用者的amqp上使用选择器。但是,由于某种原因,路由也在使用与选择器不匹配的消息。
下面是一个例子:
此路由生成消息并附加标头:
<route id="MessageGenerator">
<from uri="timer:generator?delay=5000&period=5000"/>
<setHeader headerName="INSTANCE_ID">
<simple>{{env:INSTANCE_ID}}</simple>
</setHeader>
<to uri="amqp:queue:external_queue" />
</route>
虽然此路由应该只使用那些包含INSTANCE_ID的路由,但INSTANCE_ID匹配2个可能的值:环境:示例标识或任何.
<route id="ExternalConsumer">
<from uri="amqp:queue:external_queue?selector=INSTANCE_ID IN ('{{env:INSTANCE_ID}}', 'Any')"/>
<log message="{{env:INSTANCE_ID}} consumed message with Instance ID: ${header.INSTANCE_ID}" logName="AMQP_TEST" loggingLevel="INFO"/>
</route>
但是日志显示它正在使用任何消息,而不管选择器指定了哪些消息。
我错过了什么吗?
谢谢你!
1条答案
按热度按时间l7mqbcuq1#
这里的问题是Azure服务总线不支持队列上的选择器。我切换到主题,每个订阅都已经有筛选器。