RPC协议及其python实例[通俗易懂]
RPC,协议,及其,python,实例,通俗易懂
2025-03-25 08:59:31 时间
大家好,又见面了,我是你们的朋友全栈君。
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 获取时间戳_datetime获取当前时间
- 8000 字 Python 数据可视化实操指南
- Python 哈希表查询_进入<哈希函数>为结界的世界
- Python-基础01-变量
- Python基础10-函数的递归
- Python学生信息管理系统(界面版)
- python skitlearn_Python sklearn
- Python 基于 TCP 传输协议的网络通信实现
- SPC(Statistical Process Control 统计过程控制)图——Python+JS实现
- Easy Games With Python and Pygame(二)- Pygame 绘制图形
- python 制作淘宝秒杀脚本
- Python 基于 selenium 实现不同商城的商品价格差异分析系统
- 如何设置python的环境变量_anaconda环境变量手动设置
- 【InventWithPython 第一部分】校对活动正式启动
- maven找不到包但是确实引入了_idea写python好吗
- Python-drf前戏38.3-前端Vue03
- python数据分析源码_python 统计分析
- python下mqtt服务器的搭建_搭建MQTT服务器
- 地球科学领域Python工具合集