让 JMS 队列了解正在处理的事件的状态。是否可以在 ActiveMQ 中配置?

Make JMS queue aware of the state of the events that are being processed. Is it possible to configure in ActiveMQ?

我正在尝试配置一个知道正在处理的事件的队列。

问题

  1. 这有意义吗? :)
  2. 是否可以configure/customize ActiveMQ?
  3. 是否有任何其他库可以 "easily" 配置为处理此类情况?卡夫卡?

问题 队列包含事件。每个事件都与一个对象相关联。消费者从队列中获取事件并执行任务。每个事件只能由一个消费者使用。

约束条件

  1. 不能同时处理同一对象的事件。

  2. 但是不同对象的事件应该并行处理。

例子

队列是

Consumer1 应该从队列中接收 ObjectA-Event1。 Consumer2 应该从队列中接收 ObjectB-Event1 而不是 ObjectA-Event2。只有当第一个消费者完成 ObjectA-Event1 的任务时,ObjectA-Event2 才应该对消费者可用。

在我看来你应该使用 message groups。每个对象的消息应该在同一个组中,以便它们被同一个消费者接收并串行处理。不同群组的消息可以自由的被不同的消费者处理。