ActiveMQ:批量发布消息,持久的,但不是异步的

本文关键字:异步 消息 布消息 ActiveMQ | 更新日期: 2023-09-27 18:09:30

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

我使用的是NMS, .net版本的java框架。但如果你只知道如何在java中做到这一点,它甚至会有所帮助。也许我可以找到一个解决。net更容易。

我想到了交易之类的东西。但我只让交易为消费者服务,而不是为生产者服务。

ActiveMQ:批量发布消息,持久的,但不是异步的

传统观点认为,如果你想在批量发送时获得最大的吞吐量,那么你应该使用session_transactional确认模式,并使用.commit()将所有发送的消息批处理在一起。

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

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