我正在寻找一个PHP项目中的RabbitMQ替代品。到目前为止,我正在考虑的两个选择是Kestrel和Qpid (如果我们决定坚持使用AMQP (我希望避免使用AMQP))。在RabbitMQ中,您可以将消息发送到交换(目的地),交换(目的地)决定消息应该发送到哪些队列或主题(在JMS术语中)。阻止我选择STOMP服务器(ActiveMQ/Apollo或HornetQ)的原因是,我无法确定在STOMP中是否可以将消息发送到目的地,以便将消息传递到多个队列(在JMS术语中)?发送者不应该知道消息应该传递到哪个队列。
谢谢。
发布于 2012-04-04 22:53:51
您可以在ActiveMQ中使用名为Composite Destinations的东西通过Stomp或标准的JMS客户端来完成此任务。Stomp目的地的前缀是/queue/字符串,然后是目的地的名称。您还可以在ActiveMQ中使用Virtual Destinations。当然,ActiveMQ中的目标字符串可以支持wildcards。
发布于 2012-04-05 22:37:55
在HornetQ中,您可以使用Diverts (独占和非独占)。STOMP消息将到达原始队列,但随后将透明地转移到hornetq-configuration.xml ation.xml中配置的适当队列。
您还可以应用带有转移的筛选器,以便将消息隔离到适当的队列中。
发布于 2018-06-09 05:58:39
我自己也遇到了同样的问题,并在ActiveMQ中用下面的配置解决了这个问题。
<destinationInterceptors>
<virtualDestinationInterceptor>
<virtualDestinations>
<compositeQueue name="MY.QUEUE">
<forwardTo>
<queue physicalName="FOO" />
<queue physicalName="BAR" />
</forwardTo>
</compositeQueue>
</virtualDestinations>
</virtualDestinationInterceptor>
</destinationInterceptors>
https://stackoverflow.com/questions/10009581
复制相似问题