RPC架构组件详解刨析
一个基本的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架构组件详解刨析相关推荐
- RPC框架的实现原理,及RPC架构组件详解
RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时, ...
- response—Http协议response响应详解刨析
response概述: - 代表的是HTTP响应的对象- response继承结构- ServletResponse- |- HTTPServletResponse是再ServlsetResponse ...
- UE4移动组件详解(二)——移动同步机制
第一部分从移动相关架构以及单机情况下移动的处理细节讲起 UE4移动组件详解(一)--移动框架与实现原理 而第二部分是关于移动组件同步解决方案的描述,里面有诸多细节来让移动的同步表现的更为流畅.关于移动 ...
- WCF服务端运行时架构体系详解[下篇]
作为WCF中一个核心概念,终结点在不同的语境中实际上指代不同的对象.站在服务描述的角度,我们所说的终结点实际上是指ServiceEndpoint对象.如果站在WCF服务端运行时框架来说,终结点实际上指 ...
- Android Lifecycle 生命周期组件详解
转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/99695779 本文出自[赵彦军的博客] 一.Lifecycle简介 为什么要引进 ...
- Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)
Cinder 组件详解 - 每天5分钟玩转 OpenStack(47) 本节我们将详细讲解 Cinder 的各个子服务. cinder-api cinder-api 是整个 Cinder 组件的门户, ...
- 分布式 | Dubbo 架构设计详解
转载自 分布式 | Dubbo 架构设计详解 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务 ...
- ue4移动到一定距离_UE4移动组件详解(一)——移动框架与实现原理
原文链接(转载请标明):UE4移动组件详解(一)--移动框架与实现原理_Jerish的博客-CSDN博客blog.csdn.net 前言 关于UE4的移动组件,我写了一篇非常详细的分析文档.由于篇幅 ...
- 【转】Dubbo架构设计详解
本文转自:Dubbo架构设计详解,原作者是:时延军 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服 ...
最新文章
- Exchange 2010向外网发邮件的配置
- rust python扩展_Rust语言优化Python性能案例
- 信息技术专业常用协议指什么?
- python 对链表进行插入排序
- CNN 中1X1卷积核的作用
- 由歌词引发的模式思考之下篇(模拟Spring的BeanFactory)
- React中的状态管理---Mobx
- 真实集群下-flink shell的remote模式实验记录
- 学习socket nio 之 mina实例
- python设置label的位置_Python3 tkinter基础 Label pack 设置控件在窗体中的位置
- 转载:图解SSL/TLS协议
- ArrayList详细
- 走近算法:受众行为分析与人群定向
- ng-model 数据不更新 及 ng-repeat【ngRepeat:dupes】错误
- 记 * 恢复ext4硬盘的数据
- 不服不行,太厉害了,终于有人能把TCP/IP 协议讲的明明白白了
- vue中头像加载不出来,怎样设置默认头像
- 造型简约的机箱,安装简单兼容性好,安钛克P20C体验
- 2023年湖北武汉建设厅特种工架子工证怎么报名?报考条件?启程别
- portal服务器认证系统有哪些,portal服务器认证过程问题