IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> RPC原理 -> 正文阅读

[网络协议]RPC原理

2 RPC概述

RPC(Remote Procedure Call)远程过程调用(远程方法调用),是一种进程间通信方式,是一种技术思想而不是规范,允许像调用本地服务一样调用远程服务。例如,两台服务器A(101)、B(102),分别部署不同的应用a,b。当A(User user = userService.getUser(String name))服务器想要调用B服务器应用b提供的方法(User getUser(String name))方法时,由于不在同一个JVM内存空间或不在同一个tomcat下,不能直接调用,需要通过网络传送调用的数据并且返回响应。其过程称为远程过程调用。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.服务消费方(Client)调用本地调用方式来调用远程服务;

2.Client stub 接收到请求后将方法参数等组装成网络传输的消息体(序列化);

3.Client stub 找到服务地址,并将序列化好的消息发送到服务端;

4.Server stub收到消息后进行解码(反序列化);

5.Server stub根据解码结果调用本地服务;

6.本地服务执行并将结果返回server stub;

7.server stub将返回结果打包成消息(序列化),并发送至消费者;

8.client stub将返回结果打包成消息(发序列化)并发送至消费方;

9.法务消费方得到最终结果;

注:

1.同一个JVM下,一个方法可以调用另外一个方法。

2.不同的JVM下,一个项目的方法通过RPC调用另外一个方法。

3.基于不同协议(TCP,HTTP)。

业界有很多开源的优秀 RPC 框架,例如 Dubbo(阿里)、Thrift(FaceBook)、gRPC(Google)。

RPC的核心影响因素:

(1) 网络通信效率。

(2) 序列化和反序列化。

总结:

远程过程调用是思想而不是规范,怎么实现都可以例如dubbo,springCloud等我认为都数据rpc框架,概念每个人理解不一样,不必纠结概念,Dubbo框架对ClientStub和ServerStub序列化及反序列化做了相关的封装,开发人员只需编写相关的业务代码即可,无序关注底层怎么实现,对程序员来说是透明的,当然我们还需对Dubbo底层有一些大致的了解,知道它能实现什么功能,而且为什么在国内这么流行,Dubbo底层使用Netty(NIO)框架,NIO底层使用linux操作系统函数(epollCreate,epollWait,epollCtl)三条指令实现,需依赖操作系统,当然Dubbo还有很多功能,后期慢慢挖掘。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:42:59  更:2021-11-22 12:43:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/3 21:09:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码