我的应用程序具有高级别的负载和性能至关重要。
现在,我正在迁移应用程序以使用EJB。我非常担心使用EJB来消耗队列上的消息,因为事务性会降低性能。
现在,我在同一个事务中消耗X消息,但我不知道如何使用MDB。 是否可以仅使用一个事务在MDB中使用一块消息?
答案 0 :(得分:0)
无法保证相同的MDB将处理消息流。
我认为你可以通过使用带有@Asynchronous
调用的无状态bean并传递你的消息来实现你想要的。
类似的东西:
@Stateless
public class AsynchProcessor {
@Asynchronous
public void processMessages(Set<MyMessage> messages) {....}
}
如有必要,请使用Future装饰您的方法,然后在您的客户端中。
Set<MyMessage> messages = ...
asynchProcessor.processMessages(messages)