java - ActiveMq v5.10 中 JMS 生产者的消息头大小

标签 java jms activemq middleware

我试图使用消息大小相关的统计信息
(最小消息大小、最大消息大小、平均消息大小、使用的总消息大小

DestinationStatistics.getMessages().getCount()

),发现ActiveMQ v5.10中提供的消息头大小为1028字节(发送不同大小的消息,API返回的大小多了1028字节)。我无法理解为什么尺寸是这样的。

有前缀吗?有没有办法看看 header 是由什么构成的。

谢谢

编辑:
因此,生产者基本上是使用队列上的 java 代码向代理发送 1024 字节(字符)的文本消息,该消息由监听该队列的消费者接收。我使用上述 API 记录消息大小,发现报告的消息大小是 2052 字节,而不是 1024 字节。

最佳答案

您看到的大小是总消息大小的近似值。代理不会跟踪确切的消息大小,因为消息的一部分在分派(dispatch)到更新这些统计信息的核心之前会在代理上进行解码。添加额外的字节开销值 1024,以考虑对消息进行编码并在线发送时添加的字节。无法从这些统计数据中分离出消息属性的大小与正文的大小等,这个数字只是对总编码消息大小的最佳猜测。

关于java - ActiveMq v5.10 中 JMS 生产者的消息头大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25607781/

相关文章:

java - 简单 JMS 示例不检索 JMS 消息。为什么?

python - 我们有任何 Python 客户端实现 STOMP 1.1 和自动故障转移支持吗?

c# - ActiveMQ 未找到连接的 IConnectionFactory 实现

java - Selenium Web-Driver Firefox 配置文件 - 禁用弹出窗口和警报窗口

java - 当我们在类字段上使用 @Autowire 时,它​​是哪种类型的依赖注入(inject)?

java - 将 jms 时间戳转换为当前日期和时间

jms 骡子最大再投递超出

java - 在 EJB 远程接口(interface)中使用缓存

java - 在具有泛型方法的 Java 泛型中使用 'extends' 和 'super' 的问题

java - 如果是 activemq,如何获取服务器和客户端之间交换的证书详细信息