在当前项目中,我们一直使用jms将xml作为textmessage发送。我不明白为什么他们不是简单地发送Objectmessage,为什么有处理xml的开销?
所以问题基本归结为为什么在jms中使用xml?
答案 0 :(得分:6)
这一切归结为对消息序列化格式的设计决策。
首先,Objectmessage似乎是最有效的机制。但是在以下情况下它不会很好用:
以XML格式化消息并不能完全解决这些问题,但某种形式的人类可读消息格式可以实现调试。
最后,XML并不是城里唯一的游戏。 JSON作为XML替代品正变得越来越流行。 Protocol Buffers是Google的消息传递协议,可以很好地了解一些问题和Google的解决方案。
答案 1 :(得分:2)
在这种情况下使用XML的主要好处是可以消除在通信两端拥有相同软件堆栈的依赖性。
我曾经遇到过一个客户,他通过在一端创建SQL服务器数据库的每日图像,并在另一端恢复数据,与关键供应商交换数据。结果:除非另一方也在同一天升级,否则任何一方都无法升级到SQL服务器的新版本。
此外,正如O'Connor所提到的,XML使得在需求变化时扩展消息内容变得相对轻松,而且不必每个人都必须同时实现变更。