我通过STOMP与ActiveMQ进行交互。我有一个发布消息的应用程序和一个订阅和处理消息的第二个应用程序。
如果我正在向队列写消息,我可以肯定,如果我有两个消费者,每条消息只会处理一次(因为当消息完成时,它会从队列中删除) - 但是这个功能是否来自一个主题?
例如;我有第三个应用程序,它是一个记录器。我希望记录器接收发布者发出的每条消息,但我也想要两个(或三个或四个等等)处理器中的一个接收消息。
这可能吗?
修改
在我看来,这样做的一个好方法是拥有一个发布者写入的主题,以及处理器监听的队列,并将每个消息从主题推送到队列中。 ApacheMQ可以在内部执行此操作吗?
答案 0 :(得分:3)
您可以使用Mirrored Queues在ActiveMQ内部执行此操作,也可以将Virtual Topics用于其他一些高级路由语义。如果您想要选择其他EIP类型的消息传递模式,那么我建议您查看Apache Camel,它提供了大量的EIP模式功能。