1

是否可以批量存储大量消息?我想向他们发送同步的、持久的,但要一次获得非常快的速度。

我正在使用 NMS,即 java 框架的 .net 版本。但是,如果您只知道如何在 java 中执行此操作,它甚至会有所帮助。也许我可以更轻松地找到 .net 的解决方案。

我想到了诸如交易之类的事情。但我的交易只为消费者服务,而不是为生产者服务。

4

1 回答 1

2

传统智慧曾经建议,如果您希望在批量发送时获得最大吞吐量,那么您应该使用 SESSION_TRANSACTED 确认模式并将所有消息与 .commit() 一起发送。

不幸的是,这里有一个基准表明情况并非如此http://www.jakubkorab.net/2011/09/batching-jms-messages-for-performance-not-so-fast.html你最好在没有交易的情况下正常发送它们。如果您已经在使用事务,那么尝试对它们进行批处理可能是有意义的。

我在这里的建议也是,除非您正在处理对时间极为敏感的消息,否则您生成的速率不会有那么大的问题 - 您应该更关心带宽而不是消息发送的速度. 如果您不介意消息乱序,则可以让多个生产者将这些消息生成到给定的目的地……或者如果您需要它们以便按顺序使用多个生产者,然后在它们进入代理后使用重新排序器。

于 2011-09-25T12:44:20.693 回答