【发布时间】:2012-05-09 05:55:57
【问题描述】:
在当前项目中,我们一直使用 jms 将 xml 作为文本消息发送。我不明白他们为什么不简单地发送 Objectmessage,为什么会有处理 xml 的开销?
所以问题基本上归结为为什么在 jms 中使用 xml ?
【问题讨论】:
在当前项目中,我们一直使用 jms 将 xml 作为文本消息发送。我不明白他们为什么不简单地发送 Objectmessage,为什么会有处理 xml 的开销?
所以问题基本上归结为为什么在 jms 中使用 xml ?
【问题讨论】:
这一切都归结为对消息序列化格式的设计决策。
起初,Objectmessage 似乎是最有效的机制。但是在以下情况下它不会很好地工作:
在 XML 中序列化消息并不能完全解决这些问题,但某种形式的人类可读消息格式可以进行调试。
最后,XML 并不是唯一的游戏。 JSON 作为 XML 的替代品正变得越来越流行。 Protocol Buffers 是 Google 的消息传递协议,对一些问题和 Google 的解决方案有很好的概述。
【讨论】:
在这种情况下使用 XML 的主要好处是您无需在通信的两端使用相同的软件堆栈。
我曾经遇到一位客户,他正在与一个主要供应商交换数据,该客户在一端创建其 SQL Server 数据库的每日映像,并在另一端进行恢复。结果:任何一方都无法升级到新版本的 SQL Server,除非对方也在同一天升级。
此外,正如 O'Connor 也提到的,XML 使得随着需求的变化扩展消息内容相对容易,而无需每个人都必须同时实现变化。
【讨论】: