Skip to main content

自述文件.md

项目描述

SimRpc

下载

为什么选择 SimRpc

当今所有流行的 rpc 框架,都是快速且稳定的。

但这还不足以让您轻松开始。你必须接受所有 rpc 的定义,了解它们的结构,并且你必须使你的代码适应它们。

因此,如果您不喜欢它们,并且您没有其他选择。可能SimRpc适合你

说明

SimRpc 是一个 rpc 工具,可让您轻松地将代码传输到 rpc 服务(客户端和服务器端),构建在 zeromq 和 msgpack 之上。

  • 零MQ

    确保消息传输极其快速和稳定

  • 消息包

    使消息变得非常小

用法

您的原始代码

class a:
    def minus(self, x, y):
        print("x+y=", x - y)
        return x - y
def add(x, y):
    return x + y

客户端

1)启动一个客户端实例

from simrpc.client import SimRpcClient
rpc_client = SimRpcClient()

或者也许你想开始一个特定的地址

from simrpc.client import SimRpcClient
rpc_client = SimRpcClient(server_address="tcp://localhost:6666")

server_address是zeromq 地址。

有关更多信息,您可以参考zeromq

2) 将 @rpc_client.task 装饰器添加到您的代码中

# response_only=True means you only want the result

class a:

    @rpc_client.task(response_only=True)
    def minus(self, x, y):
        print("x+y=", x - y)
        return x - y

# func=True means this is a funcion,not a class service

@rpc_client.task(response_only=True,func=True)
def add(x, y):
    return x + y

3)像往常一样使用这些功能

a().minus(4,5,rpc_client=True)

您必须指出这是一个 rpc 客户端(使用 rpc_client=True 参数),否则将使用本地代码

服务器端

1)启动一个服务器实例

from server import SimRpcServer
server = SimRpcServer()

像客户端一样,您也可以为服务器提供特定的地址。

范围 价值 操作说明
device_front_address “tcp://127.0.0.1:5559” 接收消息的地址。用于客户端连接。
device_backend_address “tcp://127.0.0.1:5560” 向 service worker 发送消息的地址。
工人地址 “tcp://127.0.0.1:5560” 工人连接到的地址。通常与 device_backend_address 相同。有关高级信息,您可以参考 zeromq

支持更多的地址方式(如ipc),可以参考zeromq

2)将您的服务注册到服务器

  • 像往常一样初始化你的课堂服务
service = a()
server.register(service)
  • 或者您让服务器初始化您的服务(只需将您的初始化参数传递给服务器。)
settings = {
    "a": {
        "kwargs": {
            "name": "test"
        }
    }
}
service = a()
server.register(service)
# or you can have this class init with server
# server.register_with_init(cls_list=[a], settings=settings)

3) 启动你的 RPC 服务器代理

server.start_broker()
# if you also want to start worker in process ,you could use server.run(),this will start a few workers.

# server.run()

使用此代理,您可以轻松地从客户端和服务器端扩展您的服务

4)开始更多的工人

# the same as above but without server.start_broker()
server.run()

具体可以参考例子

依赖

编码

  • 喜欢这个项目,给它加星
  • 欢迎任何建议
  • 这个项目在 MIT 许可下

更多文档正在编写。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

内置分布

simrpc-1.3.1-py3-none-any.whl (8.0 kB 查看哈希

已上传 py3