这篇文章主要介绍“Python中RPC是什么”,在日常操作中,相信很多人在Python中RPC是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中RPC是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
如今的计算机应用中,单机性能上很难承受住产品的压力,需要不断扩充多台机器来提升整体的性能。同时为了充分利用这些集群里的计算机,需要对其从架构上进行划分,以提供不同的服务,服务间相互调用完成整个产品的功能。
####RPC 就是为解决服务之间信息交互而发明和存在的
RPC(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议(RPC的设计思想是力图使远程调用中的通讯细节对于使用者透明,调用双方无需关心网络通讯的具体实现。因而实现RPC要进行一定的封装)
调用者(Caller, 也叫客户端、Client)以本地调用的方式发起调用;
Client stub(客户端存根,可理解为辅助助手)收到调用后,负责将被调用的方法名、参数等打包编码成特定格式的能进行网络传输的消息体;
Client stub将消息体通过网络发送给对端(服务端)
Server stub(服务端存根,同样可理解为辅助助手)收到通过网络接收到消息后按照相应格式进行拆包解码,获取方法名和参数;
Server stub根据方法名和参数进行本地调用;
被调用者(Callee,也叫Server)本地调用执行后将结果返回给server stub;
Server stub将返回值打包编码成消息,并通过网络发送给对端(客户端);
Client stub收到消息后,进行拆包解码,返回给Client;
Client得到本次RPC调用的最终结果。
使用RPC方法
声明RPC调用的接口形式 ret = recommend_article(channel_id, user_id) 接口的名字 recommend_article 调用时传递的参数 int channel_id , int user_id 接口返回数据 int list [article_id, article_id, ....]
生成 调用的代码 (包含了 参数转换为二进制传输的方法、网络传输收发的方法) rpc框架会提供生成代码的工具 (编译器) 使用编译器生成不同语言的代码 调用方 python -> 使用编译器 根据上面的接口描述 ,生成python代码 被调用方 java -> 使用编译器 根据上面的接口,生成java代码
需要补充代码 在被调用的一端 服务端 补充被调用时执行的逻辑函数 在调用的一方,需要在 调用的代码地方 补充上调用的代码
常用框架
gRPC(Google)
gRPC是由Google公司开源的高性能RPC框架。
gRPC支持多语言 gRPC原生使用C、Java、Go进行了三种实现,而C语言实现的版本进行封装后又支持C++、C#、Node、ObjC、 Python、Ruby、PHP等开发语言
gRPC支持多平台 支持的平台包括:Linux、Android、iOS、MacOS、Windows
gRPC的消息协议使用Google自家开源的Protocol Buffers协议机制(proto3) 序列化
gRPC的传输使用HTTP/2标准,支持双向流和连接多路复用
到此,关于“Python中RPC是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。