我正在研究Java应用程序,该应用程序接收消息列表,然后将其插入队列中。是否可以在Artemis JMS服务器中直接插入消息列表(一种批量插入)?还是我必须一一插入?
答案 0 :(得分:0)
使用JMS API,您可以创建一个“事务处理”会话,发送一批消息,然后在该会话上调用commit()
。从应用程序的角度来看,由于似乎对每条消息都调用send()
,所以似乎正在一对一地发送消息。但是,最耗时的工作仅在调用commit()
时发生,而每个批次仅发生一次。通常,这是作为性能优化来完成的,尤其是针对持久性消息,以避免重复发生在单个非事务发送中的阻塞。 ActiveMQ Artemis performance tuning documentation的“调整JMS”部分中讨论了将事务用于批处理的目的。