共计 1501 个字符,预计需要花费 4 分钟才能阅读完成。
这篇文章主要介绍“Python 中 RPC 是什么”,在日常操作中,相信很多人在 Python 中 RPC 是什么问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python 中 RPC 是什么”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
如今的计算机应用中,单机性能上很难承受住产品的压力,需要不断扩充多台机器来提升整体的性能。同时为了充分利用这些集群里的计算机,需要对其从架构上进行划分,以提供不同的服务,服务间相互调用完成整个产品的功能。
####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 是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!