开发者社区> 问答> 正文

PRC架构组件?

PRC架构组件?

展开
收起
请回答1024 2020-03-15 15:31:55 870 0
1 条回答
写回答
取消 提交回答
  • 一个基本的RPC架构里面应该至少包含以下4个组件:

    • 1、客户端(Client):服务调用方(服务消费者)

    • 2、客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数数据信息打包成网络消息,再通过网络传输发送给服务端

    • 3、服务端存根(Server Stub):接收客户端发送过来的请求消息并进行解包,然后再调用本地服务进行处理

    • 4、服务端(Server):服务的真正提供者 4.png

    具体调用过程

    1、服务消费者(client客户端)通过调用本地服务的方式调用需要消费的服务;

    2、客户端存根(client stub)接收到调用请求后负责将方法、入参等信息序列化(组装)成能够进行网络传输的消息体;

    3、客户端存根(client stub)找到远程的服务地址,并且将消息通过网络发送给服务端;

    4、服务端存根(server stub)收到消息后进行解码(反序列化操作);

    5、服务端存根(server stub)根据解码结果调用本地的服务进行相关处理;

    6、本地服务执行具体业务逻辑并将处理结果返回给服务端存根(server stub);

    7、服务端存根(server stub)将返回结果重新打包成消息(序列化)并通过网络发送至消费方;

    8、客户端存根(client stub)接收到消息,并进行解码(反序列化);

    9、服务消费方得到最终结果;

    而RPC框架的实现目标则是将上面的第2-10步完好地封装起来,也就是把调用、编码/解码的过程给封装起来,让用户感觉上像调用本地服务一样的调用远程服务。

    2020-03-15 15:33:03
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
MaxCompute Serverless 架构演进 立即下载
阿里云消息队列的 Serverless架构演进 立即下载
青团社云原生架构实践—亿级灵活用工平台的架构实践 立即下载