0

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

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

我读过将 jms 与 ObjectMessage 一起使用以便在消息中传递整个 java 对象需要很多性能。

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

你能帮我说清楚吗:

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

  2. 从发送方将 String 转换为 json 的总时间(
    反之亦然)是否会比仅发送 ObjectMessage 更少/更多?

谢谢,雷。

4

1 回答 1

1

只是我的 2 美分

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

比较编组和序列化

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

来自Java Dzone

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

于 2013-03-05T08:10:21.060 回答