python rpyc 远程网络调用请教!

Python07

python rpyc 远程网络调用请教!,第1张

socket.timeout: timed out连接超时,需要你先运行服务端的代码:

sr = ThreadedServer(TestRpyc, hostname = "0.0.0.0", port=9999, auto_register=False)  

sr.start()

添加下hostname试一下。

如果解决了您的问题请采纳!

如果未解决请继续追问

rpyc是我用过的最容易,也最强大的远程进程通讯了。当然如果你自己编写框架,可以比它更强大也可能。

你搜索一下官网或者是任意一个教程都可以找到一个解决方案,然后你变化一下就可以解决你的问题。

因为不太理解你的问题,所以先解释一下,rpyc实现的是将客户端代码,复制到服务端,并在服务端执行后将结果包装后返回服务端。当然如果服务端已经有这个代码了,就可以直接执行,然后结果返回。

所以原则上讲,不可能在客户端没有连接服务端的情形下,从服务端返回消息的。 所以你试验的应该是连接到服务端,然后获得响应。这个是可以的。

如果你想发消息到服务端直接通过函数的参数就可以啦。

import rpyc

c=rpyc.connect('localhost',服务端端口)

print c.root.服务端exposed的函数(你要传递的参数放在这里)

c.close()

Django- 一个开放源代码的 Web 应用框架,由 Python 写成,采用了 MVC 的软件设计模式;

rpyc- 一个 Python 实现的 RPC 和分布式计算的工具。支持同步和异步操作、回调等;

saltstack 、 ansible 、 func - 基本 Python 开发的自动化配置管理与流程控制组件;

Mysql- 是一个非常流行的关系型数据库管理系统。

二、平台架构设计

1、 OMServer 架构图

大家对这个架构应该不会感到陌生,三层结构也是目前主流的运营平台架构。

2、 架构说明

OMServer 平台为三层架构,分别为 WEB 交互层、分布式计算层、集群管理服务层。

1) 、第一层:即为 WEB 交互层,典型的 B/S 架构,以供管理员操作的交互平台,也是 OMServer 的核心,基于 Django 开发;

2) 、第二层:分布式计算层,提供与主控端的连接通道,采用的是 rpyc 传输协议,协议操作流程:前端模块参数 ->加密传输 ->任务执行 ->返回结果集 ->解密输出。

3) 、第三层:集群管理服务层,整合 Python 主流的远程操作组件(支持 Saltstack 、 Anaible、 Func ),对被控端(业务服务器集群)进行管理,其中主控端可以根据不同 IDC 环境,采用多地多点的管理方式,可提升冗余度及执行效率。主控端操作模块以不同 Python 文件加以区分,便于维护,可灵活定制操作逻辑及横向扩展等特点。