RPC:Remote Procedure Call 远程过程调用

目前,对于一个完整的应用来说,通常包含了若干支持不同功能的服务,亦或者是函数,这些服务之间往往可能需要互相调用,使用已经实现的服务功能,而不是需要在每个服务进程中再去重复实现已经有的功能。

这不仅对于开发者来说是一种比较合理的设计方式,对于服务的维护者来说,也不需要在每次服务出现问题或者需要更新服务功能的时候,必须迭代整个应用,而是只需要单独针对这个服务功能进行升级处理即可。

但是随着应用功能的扩展,单机部署的应用逐渐显得臃肿,这时,架构设计者尝试将一些较大的服务剥离开来,单独部署在另一台主机设备上,从而实现核心应用服务器的减负,提高资源利用率和服务性能,这就是 分布式部署 的方式。这也是一种从应用到服务的一种转变,

但是,此时服务部署在不同的机器上面,那服务之间要怎么实现相互调用呢?此时,RPC (Remote Procedure Call 远程过程调用) 就应运而生。

到这里,相信可能已经猜到了 RPC 的含义了,其实 RPC 本身就是一种概念,也就是 如何进行远程的服务调用 ,它不是一个协议,也不是一个解决方案,而是这些所有可以实现远程服务调用的解决方案的概念本身,此时你可能会马上联想到了 HTTP 协议,因为从上面的阐述来看,通过 HTTP 的方法调用同样可以解决以上的问题,而事实上,HTTP 就是可以用来实现 RPC 的一种方式。

你也完全可以自己实现一种 RPC 服务,根据你定义的通讯方式,只要保证当本地程序进行远程方法访问的时候,远程服务可以顺利接收到请求,并且能够识别客户端所调用的方法,并解析得到其中的参数,从而调用本地的函数并将最终得到的结果返回给客户端,这样也可以解决远程调用的问题。

因此,不需要局限于解决方法,任何可以高效并且稳定的解决问题的方案都是一个优秀的方案,很多时候一些流行的框架和方法都是为了解决某个既有问题而诞生的,因此当你清楚根本问题时,你就可以很好的理解这个框架或者理念。

相关推荐
蓝胖的四次元口袋3 小时前
服务器网络与系统基础-面试题
服务器·网络
程序员JerrySUN3 小时前
Jetson 刷机深度解析:flash.sh vs l4t_initrd_flash.sh(含安全与磁盘加密对比)
linux·网络·arm开发·安全·系统安全
视觉AI4 小时前
VS Code Remote-SSH 连接Jetson踩坑完整解决记录(网段不通+主机密钥变更双重故障)
运维·网络·人工智能·windows·ssh·边缘计算
明志数科4 小时前
人形机器人格斗场景下的技术挑战:动力学控制、感知融合与实时决策
网络·数据库
酉鬼女又兒4 小时前
零基础入门 DeepSeek V4 Pro API 开发:从环境搭建、消息格式规范到翻译函数实战、少样本提示、多轮对话聊天机器人与常见报错全流程详解指南
大数据·网络·数据库·人工智能·macos·机器人·github
欧神附体1235 小时前
在虚拟机中添加网卡,修改网卡名并关闭SElinux
linux·服务器·网络
德迅云安全-上官5 小时前
源站隐身 + 流量清洗,高防 IP 品牌实力精选
网络·网络协议·tcp/ip
Triv20255 小时前
Profinet与Modbus协议转换网关HD67602的硬件特性与配置方法
网络·plc·modbus·profinet·工业网关·协议转换
珠***格7 小时前
XGF10-Z-4典型接入方式解析:10千伏专变用户380伏多点分布式光伏如何并网?
网络·人工智能·分布式·安全·边缘计算
盟接之桥7 小时前
跨越数字鸿沟,重塑全球信任:盟接之桥EDI如何以长期主义赋能中国制造出海
网络·人工智能·安全·汽车·制造