RPC协议小结

1、 RPC R emote P rocedure C all 远程过程调用 :它是一种通过网络从远程计算机程序上请求 服务,而不需要了解底层网络技术的协议
         RPC 包含了 HTTP 协议
 
2、 常用 RPC 框架
        一、 RMI R emote M ethod I nvocation ,远程方法调用 JDK 自带 RPC ,有很多局限性,不推荐使用
        二、 Dubbo :阿里开源的高性能服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring无缝集成。目前Dubbo已经成为 Spring Cloud Alibaba中的官方组件
        三、 gRPC :可以在任何环境中运行的现代开源高性能 RPC 框架。它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平衡,跟踪,运行状况检查和身份验证。它也适用于分布式计算的最后一英里,以将设备、移动应用程序和浏览器连接到后端服务
        四、 Hessian :是一个轻量级的 remotingonhttp 工具,使用简单的方法提供了 RMI 的功能。 相比 WebService Hessian 更简单、快捷。采用的是二进制 RPC 协议,因为采用的是二进制协议,所以它很适合于发送二进制数据
        五、 Thrift Apache Thrift Facebook 开源的跨语言 RPC 通信框架。由于其跨语言特性和出色的性能,在很多互联网公司得到应用,有能力的公司甚至会基于 Thrift 研发一套分布式服务框架,增加诸如服务注册、服务发现等功能
        六、 Spring Cloud Netflix  Feign
 
3、 RPC 执行原理     RPC协议小结_第1张图片
        一、 client 以本地调用方式调用服务;
        二、 client stub 接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
        三、 client stub 找到服务地址,并将消息发送到服务端;
        四、 server stub 收到消息后进行解码;
        五、 server stub 根据解码结果调用本地的服务;
        六、本地服务执行并将结果返回给 server stub
        七、 server stub 将返回结果打包成消息并发送至消费方;
        八、 client stub 接收到消息,并进行解码;
        九、服务消费方得到最终结果。

你可能感兴趣的:(RPC,rpc)