为什么ActiveMQ TextMessage用空格填充以填充1000个字节?如何优化呢?

时间:2010-07-05 07:50:14

标签: jms activemq

嗨所有ActiveMQ专家!

我通过WireShark查看了ActiveMQ“/ examples”生成器发送消息时发生的事情,它显示每个短于1000字节的TextMessage都填充空格(''或HEX 20),直到它填充正好1000字节。 (使用ActiveMQ的“本地”传输 - TCP“OpenWire”)

不知道这是做什么的? (我假设ActivemQ JMS客户端实现) 但是为什么??

最重要的是,有没有办法优化它,以便发送短消息不会产生几乎1K的不必要空间开销?

谢谢!

欢呼声, O.K。

1 个答案:

答案 0 :(得分:1)

客户端实现是在消息中添加空格是正确的(请参阅createMessageText方法)。这只是为了使消息的大小均匀。您可以在运行示例时更改大小(使用arg:-DmessageSize =< size>)或者您可以更改ProducerTool,这样它就不会通过编辑代码并再次运行来填充每条消息(Ant会在运行之前编译它)。我已经多次完成删除空格,添加额外的文本,添加消息标题,使用XML格式化消息体等。

布鲁斯