天道酬勤,学无止境

Tars

Tars-Java客户端源码分析

一、基本RPC框架简介 在分布式计算中,远程过程调用(Remote Procedure Call,缩写 RPC)允许运行于一台计算机的程序调用另一个地址空间计算机的程序,就像调用本地程序一样,无需额外地为这个交互作用涉及到的代理对象构建、网络协议等进行编程。 一般RPC架构,有至少三种结构,分别为注册中心,服务提供者和服务消费者。如图1.1所示,注册中心提供注册服务和注册信息变更的通知服务,服务提供者运行在服务器来提供服务,服务消费者使用服务提供者的服务。 服务提供者(RPC Server),运行在服务端,提供服务接口定义与服务实现类,并对外暴露服务接口。注册中心(Registry),运行在服务端,负责记录服务提供者的服务对象,并提供远程服务信息的查询服务和变更通知服务。服务消费者(RPC Client),运行在客户端,通过远程代理对象调用远程服务。 (RPC框架基本结构) 1.1 RPC调用流程 如下图所示,描述了RPC的调用流程,其中IDL(Interface Description Language)为接口描述语言,使得在不同平台上运行的程序和用不同语言编写的程序可以相互通信交流。 (RPC调用流程) 1)客户端调用客户端桩模块。该调用是本地过程调用,其中参数以正常方式推入堆栈。 2)客户端桩模块将参数打包到消息中,并进行系统调用以发送消息。打包参数称为编组。 3

2021-06-02 02:16:33    分类:博客    Tars   Tars-Java   RPC框架   原创干货