0

发送到虚拟主题的消息将被分派到每个名为“Consumer.*.VirtualTopic.”的队列,这样的消息是否可能仅被分派到匹配条件的特定队列,而不是映射的所有队列到虚拟话题?

4

1 回答 1

0

如果您预先知道只有一定数量的消费者/队列,您可以使用复合目的地而不是虚拟目的地,并使用filteredDestination块来根据消息头做出路由决策。

<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。

于 2013-10-14T10:11:02.997 回答