RPC协议及其python实例[通俗易懂]
2023-06-13 09:11:40 时间
大家好,又见面了,我是你们的朋友全栈君。
RPC协议在OpenStack中广泛使用,那么什么是RPC协议?做什么用的那?
搜索了一阵,有了一个大概的印象。
RPC是一个应用层的协议,分为client端和server端,server端写好了具体的函数实现,client端远程调用该函数,返回函数的结果。
好处是很明显的:
首先是可以直接利用别的程序的部分功能,这是最基础的。更重要的,利用rpc可以实现系统的分布式架构,一方面有些功能比较相关应该放到一起实现,一方面物理因素的原因要求系统分解为多机实现,因此有的功能实现为了一个机器上的进程,而另外的功能实现为在另外机器上的进程,这两个进程间的协同和信息交互就可以通过rpc来实现。
python 支持RPC的应用,看看官方的例子
server端增加了一些应用函数,如add、pow、div等
from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ('/RPC2',)
# Create server
server = SimpleXMLRPCServer(("localhost", 8000),
requestHandler=RequestHandler)
server.register_introspection_functions()
# Register pow() function; this will use the value of
# pow.__name__ as the name, which is just 'pow'.
server.register_function(pow)
# Register a function under a different name
def adder_function(x,y):
return x + y
server.register_function(adder_function, 'add')
# Register an instance; all the methods of the instance are
# published as XML-RPC methods (in this case, just 'div').
class MyFuncs:
def div(self, x, y):
return x // y
server.register_instance(MyFuncs())
# Run the server's main loop
server.serve_forever()
client端使用RPC远程调用
import xmlrpclib
s = xmlrpclib.ServerProxy('http://localhost:8000')
print s.pow(2,3) # Returns 2**3 = 8
print s.add(2,3) # Returns 5
print s.div(5,2) # Returns 5//2 = 2
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144479.html原文链接:https://javaforall.cn
相关文章
- python生成器详解_Python 生成器
- Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]
- 【说站】python字符串如何取值
- python调用通达信公式_通达信公式-主力雷达Python化[通俗易懂]
- Python 生成随机数_python建立随机数列表
- python程序化交易实例-用 Python 实现你的量化交易策略「建议收藏」
- 【错误记录】Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( End of statement expected )
- Python 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)详解编程语言
- Linux下如何快速卸载Python环境(linux如何卸载python)
- 在Linux上搭建Python开发环境(linux搭建python环境)
- python已知三点计算三角形面积详解编程语言
- Python如何使用pip命令安装第三方模块
- 在Python中简单调用MySQL(python调用mysql)
- python实现的udp协议Server和Client代码实例
- Python中使用Boolean操作符做真值测试实例
- Python写的服务监控程序实例
- Python中使用ConfigParser解析ini配置文件实例
- Python实现抓取网页并且解析的实例