【发布时间】:2021-07-23 19:33:33
【问题描述】:
我正在与需要加载大量资源来处理消息内容的消费者合作。同一家族中的消息需要相同的资源。
我尝试使用消息分组来确保将同一家族中的消息提供给已加载资源的消费者。但是,我希望消费者优先处理同一家族中的消息,而不是排他性(加载资源需要时间,处理消息需要更长的时间)。例如,如果消费者 1 和 2 可用,则 ID 为 group1 的消息应始终提供给消费者 1,而 ID 为 group2 的消息应始终提供给消费者 2。如果只有消费者 2 可用,则它应该消费任何信息。这样一来,消费者 1 对消息 group1 具有优先权,但没有排他性。同样,消费者 2 对消息 group2 具有优先权,但没有排他性。
有没有办法让 AMQ 中的消息分组不给消费者排他性?还是一种根据内容动态设置消费者优先级的方法?
我正在使用 ActiveMQ 5.16.2,但如果需要,我可以切换到 Artemis。
【问题讨论】:
-
ActiveMQ 版本 5.16.2(添加到原始消息中)
-
如果消费者 1 和 2 可用:ID 为 'group1' 的消息应始终提供给消费者 1 ; ID 为“group2”的消息应始终提供给消费者 2。如果只有消费者 2 可用,它应该使用任何消息。这样,消费者 1 对消息“group1”具有优先权,但没有排他性。同样,消费者 2 对消息“group2”具有优先权,但没有排他性。
标签: activemq