MDB在同一事务上消耗多条消息

时间:2017-03-18 17:26:00

标签: jboss transactions ejb jms message-driven-bean

我的应用程序具有高级别的负载和性能至关重要。

现在,我正在迁移应用程序以使用EJB。我非常担心使用EJB来消耗队列上的消息,因为事务性会降低性能。

现在,我在同一个事务中消耗X消息,但我不知道如何使用MDB。 是否可以仅使用一个事务在MDB中使用一块消息?

1 个答案:

答案 0 :(得分:0)

无法保证相同的MDB将处理消息流。

我认为你可以通过使用带有@Asynchronous调用的无状态bean并传递你的消息来实现你想要的。

类似的东西:

@Stateless
public class AsynchProcessor {

   @Asynchronous
   public void processMessages(Set<MyMessage> messages) {....}

}

如有必要,请使用Future装饰您的方法,然后在您的客户端中。

Set<MyMessage> messages = ...
asynchProcessor.processMessages(messages)