跨语言RPC框架

作者: birdtoto | 来源:发表于2016-09-03 22:57 被阅读1520次

    跨语言RPC框架

    RPC框架

    RPC(Remote Procedure Call):是一种计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。
    比较常见的RPC框架有Hessian、Thrift、Protocal Buffer


    rpc.jpg

    Hessian

    Hessian采用的是二进制RPC协议,适用于发送二进制数据。基于Http协议进行传输。通过Servlet提供远程服务。通过Hessain本身提供的API来发起请求。响应端根据Hessian提供的API来接受请求。
    优点:
    1.整个jar很小
    2.配置简单
    3.功能强大,抛开了soap(simple object access protocal 简单对象访问协议)、ejb,采用二进制来传递对象

    Thrift

    Apache Thrift是facebook实现的一种高效、支持多种编程语言的远程服务调用框架。目前流行的服务调用方式有很多种,例如基于SOAP消息格式的web service,基于json消息格式的Restful服务。其中所用到的数据传输方式播啊看XML,JSON等,然而XML相对JSON体积大些,传输效率低。JSON体积小,新颖,但还不够完善。Apache Thrift所包含的代码生成引擎可以在多种语言中,如c++、java、python、php、erlang、perl、haskell、c#、cocoa、smalltalk等创建高效的、无缝的服务,采用二进制格式,相对XML和JSON体积更小,对于高并发、大数据量和多语言的环境更有优势。

    Protocal Buffer

    Protocal buffer 是一种轻便高效结构化数据存储格式,可以用于接哦古化数据串行化,或者说序列化。它很时候做数据存储或RPC数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了c++、java、python三种语言的API。

    Hessian、Thrift、Protocal Buffer

    1.如果不需要很多语言互相调用,希望保持清晰的java接口代码,减少开发工作量,推荐hessian
    2.如果系统之间的数据量不是很大(<2M),推荐hessian
    3.如果需要支持大数据量的传输,多语言调用,极高的并发支持,推荐使用thrift/protocal buffer。
    参考:通信协议与序列化方案的纠结: Protocol Buffer, thrift or hessian?

    相关文章

      网友评论

        本文标题:跨语言RPC框架

        本文链接:https://www.haomeiwen.com/subject/mmlkettx.html