是否可以对 ActiveMQ 主题进行分区,以便它使用消息中的键来确定将消息发布到哪个分区?

Can ActiveMQ topics be partitioned such that it uses key in the messages to determine which partition to publish message to?

我有应用程序 A,它向 ActiveMQ 队列 q1 和 q2 发布消息,我有两个消费者 c1 和 c2 分别连接 q1 和 q2。 c1 和 c2 的消息格式不同,这就是为什么我使用两个单独的队列。

是否可以将单个主题与 ActiveMQ 一起使用,并将其进一步划分为 p1 和 p2,并让 c1 订阅 p1,c2 订阅 p2? A 可以使用消息中的键来确定要订阅的分区。这可能使用 ActiveMQ 吗?

是的。 JMS 支持 SQL92 语法来创建消费者可以用来获取他们想要的消息的查询。请参阅第 9.1.8 节中的 JMS 选择器 JMS Spec

此外,ActiveMQ 文档ActiveMQ Selectors

此外,使用选择器和过滤目的地的 ActiveMQ 服务器端路由(请参阅倒数第二部分)Filtered Destinations