当前位置:网站首页>聊聊对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 能减少网络传输字节数,降低网络开销(握手)提高性能。实现更大的吞吐量和并发数,但是需要更多的关注底层复杂的细节, 对开发人员的要求也高,增加开发成本。
边栏推荐
- gRPC基础概念:闭包
- 【idea 报错】 无效的目标发行版:17 的解决参考
- Oops novice template Framework project guide
- 2022制冷与空调设备运行操作考试试题模拟考试平台操作
- Section 4-6 of the first week of the second lesson: Appreciation of medical prognosis cases + homework analysis
- 关于地图GIS开发事项的一次实践整理(上)
- 压力能变成动力
- 3342: String manipulation problem solving
- Vim and copy and paste from the outside (don't need to install the plugin)
- How to solve the problem of Tomcat booting and crashing
猜你喜欢
随机推荐
0图中等 LeetCode565. 数组嵌套
comp3331-9331-22t1-midterm复习辅导-tutorial week 5
[Detailed explanation of C data storage] (1) - in-depth analysis of the storage of shaping data in memory
通过微透镜阵列的传播
测试3年,开口就要25k?面试完最多给15k...
掌握这几招,轻松K.O面试官,Offer拿到吐
0 in the figure, etc. LeetCode565. Array nesting
Detailed explanation of new features of ES advanced array function syntax
13.cuBLAS开发指南中文版--cuBLAS中的Level-1函数copy()和dot()
多线程之ThreadPoolExecutor
Js prototype and prototype chain and prototype inheritance
【PHP】入门知识
软件测试面试题:谈谈你对 cmm 和 is9000 的认识?
Geogebra 教程之 04 Geogebra 小程序
想进阿里?先来搞懂一下分布式事务
超声三维重建总体架构
软件测试面试题:什么是Negative测试?
全局大喇叭--广播机制
postgresql ilike create function
ES6 advanced string processing new features