你会推荐使用Google Protocol Buffers或Caucho Hessian作为跨语言的线上二进制格式吗?

Vih*_*ung 9 caucho thrift hessian protocol-buffers

你会推荐使用Google Protocol Buffers或Caucho Hessian作为跨语言的线上二进制格式吗?或者其他任何事情,例如Facebook Thrift?

A. *_*scu 9

我们使用Caucho Hessian是因为降低了集成成本和简单性.它的性能非常好,所以它适用于大多数情况.

对于一些跨语言集成并不重要的应用程序,有一个更快的库可以挤出更多的性能,称为Kryo.不幸的是,它并没有被广泛使用,它的协议不像Hessian那样准标准.


Sta*_*Man 5

取决于用例.PB更紧密耦合,最好在内部与紧密耦合系统一起使用; 不适合共享/公共接口(如在两个以上的特定系统之间共享).Hessian更具自我描述能力,在Java上表现出色.在我的测试中比PB好,但我确信这取决于用例.PB似乎在文本数据方面遇到了麻烦,也许它已针对整数数据进行了优化.

我不认为对公共接口特别好,但鉴于你想要二进制格式,这可能不是一个大问题.

编辑:根据jvm-serializers基准测试,Hessian性能实际上并不是那么好.只要你确保添加强制在Java上使用快速选项的标志,PB就会非常快.如果PB对公共接口不好,那是什么?IMO,像JSON这样的开放格式在外部是优越的,并且通常比不够快,以至于性能无关紧要.


Joe*_*csy 0

肌肉具有二进制消息传输功能。抱歉,我无法评论其他人,因为我还没有尝试过。