gpt4 book ai didi

java - JMS 消息大小

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:21:15 24 4
gpt4 key购买 nike

我目前正在为使用 JMS(即 Spring 框架 JMS 和 Active MQ)的应用程序开发带宽限制功能(不要问我为什么,这不是我的决定)以在服务器和客户端之间发送带有负载的消息。

我发现了很多限制传入 JMS 消息的节流方法(但没有一个基于实际带宽负载),但是我没有找到任何可能的方法来限制传出消息流。所以我决定写Leaky bucket algorithm靠我自己。

有什么方法可以获取 JMS 消息的大小吗? 除了 Java 中的“sizeof”实现(In Java, what is the best way to determine the size of an object?)

最佳答案

我认为您没有比测量其序列化大小更好的替代方法来确定 JMS 消息的大小。

但是您可以根据需要添加一些优化。有几种类型的消息(例如 MapMessage、ObjectMessage、TextMessage)。

文本消息的大小是其文本的长度。 map 消息的大小是其所有字段的总大小。这些字段是原始类型或 java.util.Date,因此测量它们不是问题。对象消息包含可序列化对象,因此您可以通过写入 ByteOutputStream 来测量其大小。

我认为,如果您使用大多数 JMS 提供程序的隐藏功能来发送延迟消息,则使用 JMS 实现漏桶可能会得到简化。您可以在将消息排队时对其进行测量,并决定您希望订阅者何时接收它。请在此处阅读有关如何发送延迟消息的详细信息:http://alexradzin.blogspot.com/2010/10/send-delayed-jms-messages.html

关于java - JMS 消息大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7090028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com