【问题标题】:Using bytemessage instead of objectMessage in JMS在 JMS 中使用 bytemessage 而不是 objectMessage
【发布时间】:2013-03-05 16:10:21
【问题描述】:

我在我的架构中以多种方式使用 JMS。

延迟和性能是我们架构中非常重要的因素。

我读过使用 jms 和 ObjectMessage 来传递消息中的整个 java 对象需要很多性能。

另一种解决方案是转换为 json、protobuff 并将消息作为字节消息/文本消息发送。

你能帮我说清楚吗:

  1. 如果我选择 json。从 String 转换为 json 后,我应该发送消息
    作为测试还是作为 ByteArray? (有什么区别吗?)

  2. 是发送方将String转json的总时间和
    反之亦然,消费者端会比发送 ObjectMessage 更少/更多?

谢谢, 射线。

【问题讨论】:

    标签: java json performance jakarta-ee jms


    【解决方案1】:

    只要我的 2 美分

    1) IMO ,您应该使用 TextMessage 以字符串形式发送数据并将其反序列化为 Json 对象。 我不能告诉你确切的性能统计数据,但我猜 Serialization 比 Marshalling 更好,因为当你将它重建为 object 时它的开销更少。

    Comparing Marshalling with serialization

    2)此外,只需避免将数据作为对象流发送, 消息可以由非基于 java 的消息解决方案接收和处理

    来自Java Dzone

    Externalizable 的一大缺点是您必须维护它 自己逻辑——如果你在你的类中添加、删除或更改一个字段, 您必须将您的 writeExternal/readExternal 方法更改为帐户 为它。

    【讨论】:

    • 所以你说基本上我应该通过 TextMessage 而不是 BytesArrays 来做?
    猜你喜欢
    • 2013-02-28
    • 2013-09-28
    • 1970-01-01
    • 2010-11-16
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    相关资源
    最近更新 更多