当前位置:网站首页>聊聊对RPC的理解
聊聊对RPC的理解
2022-08-11 02:32:00 【C'z x】
什么是RPC?
PRC是一种远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。比如两个不同的服务 A、B 部署在两台不同的机器上,那么服务 A 如果想要调用服务 B 中的某个方法该怎么办呢?使用 HTTP请求当然可以,但是可能会比较麻烦。 RPC 的出现就是为了让你调用远程方法像调用本地方法一样简单。
RPC原理

服务消费方(client)调用以本地调用方式调用服务;
client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
client stub找到服务地址,并将消息发送到服务端;
server stub收到消息后进行解码;
server stub根据解码结果调用本地的服务;
本地服务执行并将结果返回给server stub;
server stub将返回结果打包成消息并发送至消费方;
client stub接收到消息,并进行解码;
服务消费方得到最终结果。

已经有 http 协议接口,为什么还要使用 RPC 技术?
在接⼝不多的情况下,使用 http 确实是一个明智的选择,比如在初创企业,我们不确定业务能顺利开展下去,可能面临随时倒闭,开发人员也不足,这个时候使用简洁高效的技术,先把东西做出来是最明智的选择,无需一步登天。
系统与系统交互较少的情况下,使用 http 协议优点显而易见:开发简单、测试也比较直接、部署方便,利用现成的 http 协议进行系统间通讯,如果业务真的慢慢做大,系统也慢慢扩大,RPC 框架的好处就显示出来 了,
⾸先RPC 支持长链接,通信不必每次都要像 http 一样去重复 3 次握⼿,减少了网络开销。
其次就是 RPC 框架一般都有注册中心模块,有完善的监控管理功能,服务注册发现、服务下线、服务动态扩展等都方便操作,服务化治理效率大大提高。
基于 TCP 协议实现的 RPC,能更灵活地对协议字段进行定制,相比 http 能减少网络传输字节数,降低网络开销(握手)提高性能。实现更大的吞吐量和并发数,但是需要更多的关注底层复杂的细节, 对开发人员的要求也高,增加开发成本。
边栏推荐
- MSP430如何给板子下载程序?(IAR MSPFET CCS)
- Summary of Logstash log data write exception troubleshooting
- 一言(ヒトコト)Hitokoto API
- 软件测试面试题:性能测试工作?
- 117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
- ES6进阶 字符串处理新特性
- 漏洞管理计划的未来趋势
- Mysql_Note5
- Section 4-6 of the first week of the second lesson: Appreciation of medical prognosis cases + homework analysis
- Tomca启动闪退问题如何解决
猜你喜欢

WeChat public account background management

CSAPP Data Lab

ARM开发(四)新手小白如何阅读芯片手册,裸机驱动开发步骤以及纯汇编实现点灯,汇编结合c点灯,c实现点灯

一次简单的 JVM 调优,拿去写到简历里

【C 数据存储详解】(1)——深度剖析整形数据在内存中的存储

MySQL - 一条SQL在MySQL中是如何被执行的?

nvidia-smi详解

ES6 advanced string processing new features

2022英伟达显卡排名天梯图

Docker 链接sqlserver时出现en-us is an invalid culture错误解决方案
随机推荐
MySQL - an SQL in MySQL is how to be performed?
ES进阶 数组功能语法新特性详解
[机缘参悟-66]:怎样才能让别人愿意帮你:利益共享法则、“大道”、“人性”
MySQL的主从复制+读写分离+分库分表,看这一篇文章就够了
软件测试面试题:测试用例与测试脚本?
JVM类加载机制
惨遭面试官吊打高并发系统设计,回来学习 2400 小时后成功复仇
comp3331-9331-21t1-midterm复习
Gaussian beam focused by thermal lens
gRPC基础概念:闭包
Vim and copy and paste from the outside (don't need to install the plugin)
nvidia-smi:控制你的 GPU
[4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)
数据存储全方案----详解持久化技术
[oops-framework] Template project [oops-game-kit] Introduction
【idea 报错】 无效的目标发行版:17 的解决参考
四大组件---ContentResolver
CSAPP Data Lab
ifconfig与ip命令的比较
FPGA learning column (xinlinx) serial communication -