什么是RPC(为什么需要RPC)
RPC是什么?RPC远程过程调用的全名——远程过程调用。在学校学编程,我们写一个函数,在本地调用。但在互联网公司,服务是部署在不同服务器
RPC是什么?
RPC远程过程调用的全名——远程过程调用。在学校学编程,我们写一个函数,在本地调用。但在互联网公司,服务是部署在不同服务器上的分布式系统。如何调用它们?
简单来说,RPC就是解决远程调用服务问题的技术,让调用者像调用本地服务一样方便透明。
下图显示了客户端调用远程服务的过程:
1)客户端发起服务调用请求。
2)客户端stub可以理解为代理,它将调用方法和参数封装成一定的格式,通过服务提供的地址发起网络请求。
3)消息通过网络传输到服务器。
4)服务器存根接受来自套接字的消息
5)服务器存根将消息解包,并告诉服务器要调用哪个服务以及参数是什么。
6)结果被返回到服务器存根
7)服务器存根将结果打包并提供给套接字。
8)socket通过网络传输消息。
9)客户端slub从套接字获取消息
10)客户端存根将消息解包,并将结果返回给客户端。
RPC框架封装了步骤2到9。
为什么需要RPC?
1、首先要明确:RPC可以用HTTP协议实现,使用HTTP是基于TCP的应用最广泛的RPC。然而,互联网公司往往使用自己的私有协议,如鹅厂的JCE协议。当私有协议不通用时,为什么要使用私有协议呢?与HTTP协议相比,RPC采用二进制字节码传输,更高效、更安全。
2、现在,业界提倡微服务,而目前服务之间有两种通信方式,RPC就是其中之一。RPC可以保证不同服务之间的相互调用。甚至跨语言、跨平台都不是问题,更容易构建分布式系统。
3、RPC框架将具有服务降级和流量控制功能,以确保服务的高可用性。
推荐阅读
- 吉他 尤克里里 区别,如何区分尤克里里和吉他
- 侠盗猎车圣安地斯秘籍/侠盗猎车圣安地斯,作弊码
- 去一趟巴厘岛旅游要多少钱简介
- 苹果6s怎么升级系统,苹果6s怎么设置铃声
- 如何涂指甲油,怎样涂指甲油干得快
- 纪念碑谷艾达的梦攻略第四关,纪念碑谷艾达的梦攻略
- udk虚幻4引擎(游戏开发包工具)软件介绍(udk虚幻4引擎(游戏开发包工具))
- OG梅奥为什么离开nba Pubmed GIST文献月评第十九期(Jun 2018)
- 12306用户名和密码忘记怎么找回账号,12306用户名和密码忘记怎么找回
- 哈尔滨市极乐寺简介
- 二人麻将打法技巧,迅速如何掌握二人麻将技巧
- 故宫门票多少钱一张2021,故宫门票多少钱
- 如何删除微信中的表情包,微信如何删除自己保存的表情
- dnf已经有红字的怎么把红字洗掉,dnf已经洗出红字的装备怎么洗掉
- 海蛏子的家常做法,海蛏子的做法大全
- 微信聊天记录怎么恢复吗,微信聊天记录怎么恢复方法:
- qq飞车帧数如何能锁,QQ飞车帧数如何修改
- 1盎司相当于多少克黄金,盎司等于多少克及一盎司黄金等于多少克
- 怎么恢复路由器出厂,怎样恢复路由器出厂设置
- 触手tvlogo怎么买,如何录制触手TV文章