发送到虚拟主题的消息将被分派到名为“Consumer。*。VirtualTopic。”的每个队列中,是否可能只将这些消息分派给符合条件的某些队列,而不是全部映射到虚拟主题的队列?
答案 0 :(得分:0)
如果您事先知道只有一定数量的使用者/队列,您可以使用复合目标而不是虚拟目标,并使用filteredDestination
块根据邮件头做出路由决策。< / p>
<destinationInterceptors>
<virtualDestinationInterceptor>
<virtualDestinations>
<compositeQueue name="orders">
<forwardTo>
<filteredDestination selector="odd = 'yes'" queue="orders.odd"/>
<queue physicalName="orders.accounting" />
<queue physicalName="orders.warehouse" />
<queue physicalName="orders.crm" />
</forwardTo>
</compositeQueue>
</virtualDestinations>
</virtualDestinationInterceptor>
</destinationInterceptors>
对于更复杂的路由决策,您应该考虑使用外部路由引擎,例如Apache Camel。