一个基本的RPC架构里面应该至少包含以下4个组件:

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

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

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

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

具体调用过程:

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步完好地封装起来,也就是把调 用、编码/解码的过程给封装起来,让用户感觉上像调用本地服务一样的调用远 程服务。

RPC架构组件详解刨析相关推荐

  1. RPC框架的实现原理,及RPC架构组件详解

    RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时, ...

  2. response—Http协议response响应详解刨析

    response概述: - 代表的是HTTP响应的对象- response继承结构- ServletResponse- |- HTTPServletResponse是再ServlsetResponse ...

  3. UE4移动组件详解(二)——移动同步机制

    第一部分从移动相关架构以及单机情况下移动的处理细节讲起 UE4移动组件详解(一)--移动框架与实现原理 而第二部分是关于移动组件同步解决方案的描述,里面有诸多细节来让移动的同步表现的更为流畅.关于移动 ...

  4. WCF服务端运行时架构体系详解[下篇]

    作为WCF中一个核心概念,终结点在不同的语境中实际上指代不同的对象.站在服务描述的角度,我们所说的终结点实际上是指ServiceEndpoint对象.如果站在WCF服务端运行时框架来说,终结点实际上指 ...

  5. Android Lifecycle 生命周期组件详解

    转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/99695779 本文出自[赵彦军的博客] 一.Lifecycle简介 为什么要引进 ...

  6. Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)

    Cinder 组件详解 - 每天5分钟玩转 OpenStack(47) 本节我们将详细讲解 Cinder 的各个子服务. cinder-api cinder-api 是整个 Cinder 组件的门户, ...

  7. 分布式 | Dubbo 架构设计详解

    转载自   分布式 | Dubbo 架构设计详解 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务 ...

  8. ue4移动到一定距离_UE4移动组件详解(一)——移动框架与实现原理

    原文链接(转载请标明):UE4移动组件详解(一)--移动框架与实现原理_Jerish的博客-CSDN博客​blog.csdn.net 前言 关于UE4的移动组件,我写了一篇非常详细的分析文档.由于篇幅 ...

  9. 【转】Dubbo架构设计详解

    本文转自:Dubbo架构设计详解,原作者是:时延军 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服 ...

最新文章

  1. Exchange 2010向外网发邮件的配置
  2. rust python扩展_Rust语言优化Python性能案例
  3. 信息技术专业常用协议指什么?
  4. python 对链表进行插入排序
  5. CNN 中1X1卷积核的作用
  6. 由歌词引发的模式思考之下篇(模拟Spring的BeanFactory)
  7. React中的状态管理---Mobx
  8. 真实集群下-flink shell的remote模式实验记录
  9. 学习socket nio 之 mina实例
  10. python设置label的位置_Python3 tkinter基础 Label pack 设置控件在窗体中的位置
  11. 转载:图解SSL/TLS协议
  12. ArrayList详细
  13. 走近算法:受众行为分析与人群定向
  14. ng-model 数据不更新 及 ng-repeat【ngRepeat:dupes】错误
  15. 记 * 恢复ext4硬盘的数据
  16. 不服不行,太厉害了,终于有人能把TCP/IP 协议讲的明明白白了
  17. vue中头像加载不出来,怎样设置默认头像
  18. 造型简约的机箱,安装简单兼容性好,安钛克P20C体验
  19. 2023年湖北武汉建设厅特种工架子工证怎么报名?报考条件?启程别
  20. portal服务器认证系统有哪些,portal服务器认证过程问题

热门文章

  1. 高等代数7.9-最小多项式
  2. Android实现倒计时之使用CountDownTimer
  3. Linux 安装 golang
  4. competer science, Personal Statement
  5. OPENMV PCB及硬件资源介绍
  6. 学好日语口语的5个原则
  7. CPU处理器与MIPS
  8. java模拟商店购买
  9. 基于Python使用OpenCV进行车牌检测
  10. 怎么免费批量将JPG转WEPB