RPC理论原理

article/2025/9/26 19:46:45

目录

  • 集群和分布式
  • RPC通信原理

集群和分布式

集群:每一台服务器独立运行一个工程的所有模块
分布式:一个工程拆分了很多模块,每一个模块独立部署运行在一个服务器主机上,所有服务器协同工作共同提供服务,每一台服务器称作分布式的一个节点,根据节点的并发要求,对一个节点可以再做节点模块集群部署。
  分布式集群各服务器上运行各自的业务,当在一台服务器上需要调用另一台服务器的业务的时候,就是需要RPC来实现了。

RPC通信原理

  RPC(Remote Procedure Call Protocol)远程过程调用协议。
在这里插入图片描述
  caller服务器上调用callee服务器上的函数,将callee上的函数名以及需要的参数打包,通过网络的方式传输过去(此时的caller等待结果),callee上收到包之后将收到的包进行解包,通过信息找到对应的函数执行将结果打包然后通过网络传输给caller,caller收到包之后解包将结果return。
  中间打包和解包的过程称为数据的序列化和反序列化。中间的黄色部分绿色部分就是RPC这个框架需要做的事情。
黄色部分:设计rpc方法参数的打包和解析,也就是数据的序列化和反序列化,使用Protobuf。
绿色部分:网络部分,包括寻找rpc服务主机,发起rpc调用请求和响应rpc调用结果,使用muduo网络库和zookeeper服务配置中心(专门做服务发现)。
(mprpc框架主要包含以上两个部分的内容。)


http://chatgpt.dhexx.cn/article/vFtHlKe9.shtml

相关文章

一文搞懂RPC原理

了解RPC: RPC(Remote Procedure Call Protocol)——远程过程调用协议: 一般用于实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地资源一样,通过网络传输去访问远端系统资源。 描述&…

rpc简介及原理

1.RPC简介及原理介绍 RPC技术内部原理是通过两种技术的组合来实现的:本地方法调用 和 网络通信技术。 1.1 RPC简介 在上述本地过程调用的例子中,我们是在一台计算机上执行了计算机上的程序,完成调用。随着计算机技术的发展和需求场景的变化…

RPC原理解析

1.RPC原理解析 1.1 什么是RPC RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP/IP或UDP,为通信程序…

RPC实现原理

一、什么是RPC框架? RPC,全称为Remote Procedure Call,即远程过程调用,是一种计算机通信协议。 比如现在有两台机器:A机器和B机器,并且分别部署了应用A和应用B。假设此时位于A机器上的A应用想要调用位于B机…

什么是 RPC?RPC原理是什么?

什么是 RPC?RPC原理是什么? 什么是 RPC? RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。比如两个不同的服务 A、B 部署在两台不同的机器…

【RK3399Pro学习笔记】三、Debian 9 安装 ROS (Thinker Edge R)

目录 配置源设置 Key安装初始化rosdep环境配置测试安装rosinstall卸载 平台:华硕 Thinker Edge R 瑞芯微 RK3399Pro 固件版本:Tinker_Edge_R-Debian-Stretch-V1.0.4-20200615 参考资料: RK3399(Debian9 - stretch) 安装 ROS Lunar —— WB8…

VMware安装Debian9及开发环境配置

序 需要用到一个搭载armv7架构A7内核的Linux设备,装的是Debian系统,为便于兼容该设备故用VMware安装一个Debian9虚拟机,整理总结了网上一些信息以供参考。 目录 一、安装Debian91、WMware中的配置2、安装镜像 二、开发环境配置1、设置快捷键打…

debian 升级linux内核,Debian 9更新到最新的Linux内核

喜欢折腾的同学,会豪气如何升级 Debian Stretch 的内核到新版。遗憾的是现在能搜到的升级 Debian Linux 内核的文章多数是使用Ubuntu的deb安装包,其实这样装上去是有问题,常见的问题是,总会提示需要 apt --fix-broken install 。 这里简单记录一下,如何使用Debian官方源更…

debian 9 ssh root权限登录

debian 9默认的一样不能用root用户登录,还是需要设置,方法如下: 一,打开终端,用普通用户登录 输入:su - 输入密码,切换到root用户 二,设置root用户登录 nano /etc/ssh/sshd_conf…

Debian9到Debian11的超详细升级教程

在云服务器商镜像页面中,可能无法选择一些系统最新的镜像版本。 就会造成一些软件不能顺利下载。 这时就需要自己手动下载并安装最新版的Debian系统了。 1、把当前版本的包更新到最新的版本 apt-get update apt-get upgrade apt-get dist-upgrade按q 直接回车 …

【linux实战】debian9安装python3.7

之前有写了一篇ubuntu18.04使用apt安装python各个版本的,但是最近上debian9上,发现那种apt安装方式不可行,因为ppa不支持debian系列。 Debian 9 默认安装有 Python 2.7 和 3.5。但是我们现在没法使用apt直接安装是没法安装自己想要的版本。 …

debian 系统启动服务器,Debian9添加开机自启动服务

升级到Debian9后,我们发现系统默认不带/etc/rc.local文件,但rc.local服务仍然保留 补齐缺失文件,让Debian9通过编辑/etc/rc.loacl文件为我们的服务添加开机自启动 1、添加rc-local.service #以下为一整条命令,一起复制运行cat >…

debian服务器系统安装,安装Debian 9(Stretch)最小服务器

在本指南中,我们将引导您使用netinstall CD ISO映像安装Debian 9(Stretch)Minimal Server 。 您将执行的此安装适用于构建未来可定制的服务器平台,而无需GUI(图形用户界面)。 您可以使用它来安装仅需要使用的必需软件包,我们将在将来的指南中向您展示。 但是,在进一步了解系…

debian9服务器系统,如何安装Debian 9(Stretch)最小服务器

本教程将介绍如何安装Debian 9(Stretch)最小服务器。 本指南的目的是提供一个最小的Debian设置,可以作为我们其他Debian 9教程的基础,以及在howtoing.com上完美的服务器指南 。 1要求 要安装Debian 9服务器系统,您将需要以下内容:…

debian9软件源的设置

文章目录 debian9软件源的设置概述笔记END debian9软件源的设置 概述 今天和同学讨论一个在debian9下自产软件的细节, 需要先编译这个软件工程. 他说在debian9或debian10下都可以编译. 我本地debian9虚拟机编译失败. 因为我这虚拟机环境是从.iso装的, 装到可以访问外网就做了…

IDEA连接数据库失败

问题描述 IDEA连接数据库输入用户名密码后点击测试连接,返回failed连接失败。 点击view查看失败原因 提示错误号为08001 分析原因 MySql 5.X版本和MySql8.X版本之间有个比较大的区别,MySql8.X在连接的时候需要设置时区,否则连接失败。 …

PHP连接数据库失败-解决方案

问题描述 今天在使用php代码连接数据库的时候发现死活都连接不上,在确认账号密码都没有错误的情况下,几乎找遍了答案都无法解决。 解决方法 通过不断的查阅资料及测试,发现问题在于本机地址localhost和127.0.0.1身上,当我把l…

用php连接数据库步骤,php连接数据库步骤详细介绍

本篇文章为大家简述一下PHP与数据库连接步骤,仅供参考。 1:链接数据库 ①主机地址 ②mysql用户名 ③mysql密码 ④选择连接的数据库 ⑤端口号mysqli_connect($localhost, $user, $password, $port); 返回:如果连接成功,返回资源类型…

CDH 5.13 hue数据库连接测试失败

在自己的虚拟机部署了好几次hue连接测试不通过,暂时用不到hue,就一直没有管。 路径; /opt/cm-5.13.1/log/cloudera-scm-server 执行 tail -n 500 cloudera-scm-server.log 报错信息: 解决办法:安装mysql的时候,将…

用友系统中连接数据库服务器失败,用友u8服务器连接不到本地数据库

用友u8服务器连接不到本地数据库 内容精选 换一换 创建外表语法(CREATE FOREIGN TABLE (SQL on Hadoop or OBS))中,需指定一个与MRS数据源连接相关联的外部服务器。当您通过GaussDB(DWS)管理控制台创建MRS数据源连接时,数据库管理员dbadmin会在默认数据库gaussdb中自动创建一…