代码之家  ›  专栏  ›  技术社区  ›  Vihung

你会推荐googleprotocolbuffers还是Caucho-Hessian来实现跨语言的有线二进制格式?

  •  9
  • Vihung  · 技术社区  · 17 年前

    你会推荐googleprotocolbuffers还是Caucho-Hessian来实现跨语言的有线二进制格式?或者其他任何东西,比如Facebook Thrift?

    8 回复  |  直到 17 年前
        1
  •  9
  •   A. Ionescu    15 年前

    我们使用Caucho-Hessian,因为它降低了集成成本和简化。它的性能非常好,所以在大多数情况下都是完美的。

    Kryo . 不幸的是,它并没有得到广泛的应用,它的协议也不像Hessian的协议那样是准标准的。

        2
  •  5
  •   StaxMan    14 年前

    取决于用例。PB的耦合要紧密得多,最好在内部与紧密耦合的系统一起使用;不适合共享/公共接口(如在两个以上的特定系统之间共享)。

    我不认为这两种方法对公共接口都不是特别好,但是考虑到你想要二进制格式,这可能不是什么大问题。

    编辑:黑森的表现其实还不如佩尔 jvm-serializers 基准。只要你确保在Java上添加强制使用fast选项的标志,PB就相当快。 如果PB不适合公共接口,那又是什么呢?在我看来,像JSON这样的开放格式在外部是很优越的,而且往往不够快,所以性能并不重要。

        3
  •  3
  •   PeiSong    14 年前

    对我来说,高加索黑森是最好的。

    使用hessian,您不必编写另一个文件来定义模型(我们使用java+java)。它为开发和维护节省了大量时间。

        4
  •  2
  •   Adrian A.    15 年前

    如果需要支持,可以将来自多种语言/平台的应用程序互连,那么Hessian是最好的。如果只使用Java,比Kryo更快。

        5
  •  1
  •   Vincent Oberle    17 年前

    我自己也在调查。。到目前为止还没有好的结论,但是我发现 http://dewpoint.snagdata.com/2008/10/21/google-protocol-buffers/ 总结所有选项。

        6
  •  0
  •   Joel Lucsy    17 年前
        7
  •  0
  •   buttercup    15 年前

    我试过谷歌协议缓冲区。它使用C++/MFC,C语言,PHP和更多的语言(参见: http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns

        8
  •  0
  •   pjklauser    13 年前

    我想说ProtocolBuffers、Thrift或Hessian在二进制格式方面非常相似,它们提供跨语言序列化支持。固有的序列化在它们之间可能有一些小的性能差异(大小/空间权衡),但这不是最重要的事情。ProtocolBuffers无疑是一种性能良好的IDL定义格式,它具有可扩展性的特性,这使得它具有吸引力。

    http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns . 我见过一些RPC实现,它们支持java和c,或者c和c++,或者python和c等等,但是在这里,您只需要找到一个满足您具体需求的库并进行评估,否则您可能会失望。(至少我对写protobuf rpc pro很失望)

    Kyro是一种类似protobuf的序列化格式,但仅限于java。Kyro/Net是使用Kryo消息的纯java RPC实现。因此,它不是“跨语言交际”的好选择。

    今天看来是冰 http://www.zeroc.com/

    推荐文章