Web | RPC 的结构流程

简介: Web | RPC 的结构流程

RPC 结构流程

上一篇我们了解了什么是 RPC,以及 RPC 和 HTTP 的区别,这次我们了解下 RPC 的结构流程。

上一篇我们提到过 RPC 的优点是调用双方无需关心网络通讯的具体实现,就像写本地函数一样简单,在整个调用的过程中,RPC 会尽可能的让这个通讯过程对使用者透明

那么, RPC 结构流程是什么样的呢?

RPC 的结构流程图

1、Caller (客户端)以本地调用的方式发起调用

2、 Client stub(客户端存根,可理解为辅助助手)收到调用后,负责将被调用的方法名、参数等打包,编码成特定格式的、能进行网络传输的消息体

3、 Client stub 将消息体通过网络发送给对端(服务端)

4、Server stub(服务端存根,同样可理解为辅助助手)收到通过网络接收到消息后按照相应格式进行拆包解码,获取方法名和参数

5、Server stub 根据方法名和参数进行本地调用

6、被调用者(Callee,也叫 Server )本地调用执行后将结果返回给 server stub

7、Server stub 将返回值打包编码成消息,并通过网络发送给对端(客户端)

8、Client stub 收到消息后,进行拆包解码,返回给 Client;

9、Client得到本次RPC调用的最终结果。

上面的 1-9 就是 RPC 的整个通讯的结构流程,而为了能够实现让整个通讯过程透明且好用,  RPC 把 2-8 的流程封装起来,我们调就完事了。

还有什么?

在了解了 RPC 流程之后,为了实现 RPC,我们还需要关注两点:

  • 消息协议
    客户端调用的参数和服务端的返回值这些在网络上传输的数据以何种方式打包编码和拆包解码。
    我们可以使用HTTP协议中关于报文格式的规定(如此一来,就编程了HTTP通讯),也可以自己定义某种格式,让客户端与服务端双方都遵循此种格式。
  • 传输控制
    在网络中数据的收发传输控制具体如何实现。

上面的两点我们会在之后的文章中学习,今天的文章就到这,Bye ~

Love & Share

[ 完 ]

相关文章
|
6月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
185 1
|
2月前
|
负载均衡 Dubbo Java
最简最快了解RPC核心流程
本文主要以最简易最快速的方式介绍RPC调用核心流程,文中以Dubbo为例。同时,会写一个简易的RPC调用代码,方便理解和记忆核心组件和核心流程。
最简最快了解RPC核心流程
|
2月前
|
JSON 前端开发 JavaScript
从前端到后端——Web开发的全流程解析
【2月更文挑战第2天】Web开发涉及多个方面,从前端设计到后端实现,需要开发者具备一定的技术能力和知识储备。本文将以一个简单的Web应用为例,详细介绍Web开发的全流程。
|
2月前
|
虚拟化 开发者 Docker
深入浅出:利用Docker容器化技术加速Web开发流程
在本篇文章中,我们将探讨Docker容器化技术如何为Web开发带来革命性的效率提升。通过具体案例和实操示范,我们不仅会介绍Docker的基本概念和工作原理,还将深入分析如何利用Docker容器化技术简化开发环境的搭建、提高应用的可移植性以及加快部署速度。本文旨在为读者提供一种全新的视角,理解并实践如何通过Docker优化现代Web开发流程,无论是对于个人开发者还是团队项目,都将带来前所未有的便捷和效率。
|
3月前
|
Java
【web server】整体流程解析
【web server】整体流程解析
|
6月前
|
Java 关系型数据库 MySQL
JSP考试报名管理系统myeclipse开发mysql数据库bs框架java编程web网页结构
二、功能介绍 (1)权限管理:对权限信息进行添加、删除、修改和查看 (2)用户管理:对用户信息进行添加、删除、修改和查看 (3)公告管理:对公告信息进行添加、删除、修改和查看 (4)考试科目管理:对考试科目信息进行添加、删除、修改和查看 (5)考试安排管理:对考试安排信息进行添加、删除、修改和查看 (6)报名管理:对报名信息进行添加、删除、修改和查看,审核, (7)用户登录、身份验证 三、注意事项 1、管理员账号:admin密码:admin 数据库配置文件DBO.java 角色:普通用户,管理员 2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql
109 0
|
6月前
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
49 0
|
6月前
|
Java 关系型数据库 MySQL
JSP实习实训管理系统myeclipse开发mysql数据库WEB结构java编程
JSP 实习实训管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
46 0
|
6月前
|
SQL 存储 Java
JSP商家餐饮管理系统myeclipse开发sql数据库web结构java编程
JSP 商家餐饮管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 商场餐饮管理系统就是专门为商场和餐饮店主量身打造的一款电子商务系统,商场可以通过它来管理商场的美食广场,商场餐饮管理能能够使居民享受到餐厅美食,既方便了顾客,也节约了时间,提高了效率,也解决了普通商场美食广场出现的问题
23 0
|
6月前
|
Java 关系型数据库 MySQL
java编程网页SSH设备管理系统myeclipse开发mysql计算机程序web结构JSP源码
JSP SSH设备管理系统是一套完善的web设计系统(struts2+spring+hibernate模式开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发
58 1
java编程网页SSH设备管理系统myeclipse开发mysql计算机程序web结构JSP源码