【发布时间】:2019-03-07 12:11:56
【问题描述】:
我正在开发一个 Java 应用程序,它接收消息列表,然后将它们插入队列中。是否可以直接在我的 Artemis JMS 服务器中插入消息列表(一种批量插入)?还是必须一一插入?
【问题讨论】:
标签: java jms activemq-artemis
我正在开发一个 Java 应用程序,它接收消息列表,然后将它们插入队列中。是否可以直接在我的 Artemis JMS 服务器中插入消息列表(一种批量插入)?还是必须一一插入?
【问题讨论】:
标签: java jms activemq-artemis
使用 JMS API,您可以创建“事务处理”会话,发送一批消息,然后在会话上调用 commit()。从应用程序的角度来看,似乎消息是一个接一个地发送的,因为每条消息都会调用send()。然而,最耗时的工作只发生在调用commit() 时,每批只发生一次。这通常是作为性能优化来完成的,特别是对于持久消息,以避免在单个非事务性发送上发生重复阻塞。 ActiveMQ Artemis performance tuning documentation 的“调整 JMS”部分讨论了将事务用于批处理目的。
【讨论】: