浅谈RPC的理解

浅谈RPC的理解

    • 前言
    • RPC体系
    • Dubbo架构
    • 最后

前言

本文中部分知识涉及Dubbo,需要对Dubbo有一定的理解,且对源码有一定了解

如果不了解,可以参考学习我之前的文章:

  1. 浅谈Spring整合Dubbo源码(@Service和@Reference注解部分)

  2. 浅谈Dubbo服务导出到注册中心源码

  3. 浅谈Dubbo服务引入源码(@ReferenceBean依赖注入)

  4. 浅谈Dubbo核心概念及架构流程



RPC体系

RPC与HTTP协议都属于网络协议中的应用层,HTTP协议侧重描述通信层面的约定,而RPC更加侧重于远程过程调用的目的(可以使程序能在网络上请求远程计算机上的服务,而无须关心底层网络技术细节),即两者并不冲突,比如RPC框架的实现之一Feign,其底层通信就是使用的HttpClient。

基于RPC需要具备的各项能力,可以对整个RPC的调用过程进行分层,将各项能力分布在各层中,最终达成我们的目的。下图为RPC各层的梳理,同时将开源的Dubbo框架架构图中的各层RPC的各层进行了映射:

请添加图片描述

整体执行流程如下:

  1. 客户端调用:客户端通过本地调用远程过程的方式,就像调用本地方法一样;
  2. 数据序列化:客户端将调用的参数序列化为可以在网络上传输的格式,如二进制流或 JSON;
  3. 网络传输:序列化后的数据通过网络传输到远程服务器;
  4. 数据反序列化:服务器接收到数据后,将其反序列化为原始参数;
  5. 服务端执行:服务器执行相应的过程,并将结果返回;
  6. 结果序列化:服务器将执行结果序列化为可以在网络上传输的格式;
  7. 网络传输:序列化后的结果通过网络传输到客户端;
  8. 结果反序列化:客户端接收到结果后,将其反序列化为最终的返回值;
  9. 客户端接收结果:客户端获得最终的执行结果,完成整个过程。


Dubbo架构

在了解了RPC体系以后,再看Dubbo的架构图,尽管图中节点很多,但是我们可以很方便的抓住核心点(起码我很有感觉),即明白这是哪一层,这一层要干嘛,相关节点的大致作用。

请添加图片描述



最后

我们可以明确,类比于其他RPC框架,它们面对的问题、以及要解决的问题都是相同的,只不过不同的框架相关的实现有差异,仅此而已。

同时我们不难发现,不同RPC框架经常说的性能问题,其本质也就是①Message Protocol(消息管理层)、②Transfer/Network Protocol(传输管理层)、③描述后的URL(描述服务的协议方式)、④Registration Center(注册中心)之间的差异。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/760810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络世界的城关——网卡

网络世界的城关——网卡 网卡到底是什么?网卡的功能网卡的真面目网卡的组成网卡的种类1.基于网络连接方式分类2.基于总线接口类型分类3.基于接口类型的分类4.基于传输速度的分类5.基于应用领域的分类 网卡到底是什么? 网卡我们可以这样通俗地理解&#x…

vue 若依 新开tab 不关闭旧的tab

注意 这里不是新开窗口(_blank不符合我的需求),是新开一个tab若依对于统一组件打开的tab只能存在一个,因为路径相同 思路 路径不一致不就行了,动态生成的法子肯定是用不了了在router.js中配置路径:路径后面…

游戏平台出海运营有难度吗?

随着全球互联网的飞速发展,游戏产业已经成为了文化娱乐领域的重要支柱。在这个背景下,越来越多的游戏平台开始寻求出海运营,以拓展海外市场,实现更大的商业价值。然而,游戏平台出海运营并非易事,其中涉及到…

‍Java OCR技术全面解析:六大解决方案比较

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

个人可以做知识付费网站吗

个人可以做知识付费网站吗 个人能够做学问付费网站吗?答案是肯定的!如今个人做学问付费网站并不需求太多的资金和技术支持,我们只需求购置一台效劳器或虚拟主机,然后在该主机空间上搭建一个WordPress网站,最后运用带有…

【C语言】数9的个数

编写程序数一下 1到 100 的所有整数中出现多少个数字9 1,首先产生1~100的数字。然猴设法得到数9个数,例如个位:19%109,十位:91/109。 2,每次得到数九的时候,就用一个变量来进行计数。 代码如…

【极简无废话】open3d可视化torch、numpy点云

建议直接看文档,很多都代码老了,注意把代码版本调整到你使用的open3d的版本: https://www.open3d.org/docs/release/tutorial/visualization/visualization.html 请注意open3d应该已经不支持centos了! 从其他格式转换成open3d…

MySQL 索引的10 个核心要点

文章目录 🍉1. 索引底层采用什么数据结构?为什么不用hash🍉2. B树与B树区别?为何用B树?🍉3. 自增主键理解?🍉4. 为什么自增主键不连续🍉5. Innodb为什么推荐用自增ID&…

GEE高阶案例——直方图匹配用于影像条带修复(geemap和eemont)进行直方图匹配(sentinel/modis和Landsat5/8)

如何利用geemap和eemont中的方法进行直方图匹配研究。Landsat5/8之间的单景影像之间的匹配,sentinel-2和modis之间的影像匹配为例分析。 简介 直方图匹配是一种数字图像处理技术,用于将一个图像的直方图转换成另一个图像的直方图。直方图是对图像亮度或颜色分布的统计量,可…

马斯克开源的大模型Grok-1

马斯克开源的大模型是Grok-1 Grok-1是一个参数量达到3140亿的AI大语言模型,其规模超越了OpenAI GPT-3.5的1750亿参数,是目前世界上最大的开源LLM大语言模型。马斯克通过其旗下的AI公司xAI开发了这一模型,并在过去4个月内采用Mixture-of-Expe…

jni入门学习 CMakeLists脚本

在 Android Studio 中使用 CMake 可以编译 C/C 代码,这为开发者提供了在 Android 应用中嵌入本地代码的能力。下面是关于在 Android Studio 中使用 CMake 编译的详细说明: 1. 创建 CMakeLists.txt 文件: 首先,你需要在项目的根目…

ISP技术综述

原文来自技术前沿:ISP芯片终极进化——VP芯片(AI视觉处理器) 目录 1.计算机视觉的定义 2.与计算机视觉密切相关的概念与计算机视觉密切相关的概念有机器视觉,图像处理与分析,图像和视频理解。 3.计算机视觉的应用 …

python进行语音分离和说话人识别

场景: 一段音频中有多个说话人,将不同的人说的话分离出来 已知一些人的语音特征,跟分离出来的片段,分别求特征的余弦距离,余弦距离最小的作为说话的人 安装: pip install pyannote.audio # _*_ coding: utf-8 _*_import torch from pyannote.audio import Model, Pipel…

RIPGeo代码理解(四)model.py( RIPGeo的核心源代码)

​ 代码链接:RIPGeo代码实现 ├── lib # 包含模型(model)实现文件 │ |── layers.py # 注意力机制的代码。 │ |── model.py # TrustGeo的核心源代码。 │ |── sublayers.py # layer.py的支持文件。 │ |── utils.…

六种GPU虚拟化:除了直通、全虚拟化 (vGPU)还有谁?

在大类上计算虚拟化技术有这3种: 软件模拟、直通独占(如网卡独占、显卡独占)、直通共享(如vCPU 、vGPU)。但对于显卡GPU而言我总结细化出至少这6种分类: 第一种、软件模拟(eg sGPU), 又叫半虚拟化。第二种…

RIPGeo代码理解(三)layers.py(注意力机制的代码)

代码链接:RIPGeo代码实现 ├── lib # 包含模型(model)实现文件 │ |── layers.py # 注意力机制的代码。 │ |── model.py # TrustGeo的核心源代码。 │ |── sublayers.py # layer.py的支持文件。 │ |── utils.py #…

uView Badge 徽标数

该组件一般用于图标右上角显示未读的消息数量,提示用户点击,有圆点和圆包含文字两种形式。 #平台差异说明 App(vue)App(nvue)H5小程序√√√√ #基本使用 通过value参数定义徽标内容通过type设置主题。重…

【教你如何制作一个简单的HTML个人网页】

制作一个简单的HTML个人网页 创建一个简单个人的HTML网页很容易,下面是一个基本的示例,其中包含一些常见的元素,比如标题、段落、一张图片和一些链接,请记住,您将需要一个地方来存储您的HTML文件和任何相关资源&#…

电子商务类网站搭建需要注意的几点。

随着电子商务的迅猛发展,越来越多的企业和创业者选择在互联网上开设自己的电商网站。为了确保电商网站能够高效运行,给用户提供良好的体验,选择合适的服务器配置至关重要。 一、硬件配置 1、 CPU(中央处理器) 电商网…

STM32CubeMX学习笔记23---FreeRTOS(任务的挂起与恢复)

1、硬件设置 本实验通过freertos创建两个任务来分别控制LED2和LED3的亮灭,需要用到的硬件资源 LED2和LED3指示灯串口 2、STM32CubeMX设置 根据上一章的步骤创建两个任务:STM32CubeMX学习笔记22---FreeRTOS(任务创建和删除)-CS…