zerorpc


ZeroRPC是一个轻量级,可靠且与语言无关的产品 用于服务器端之间分布式通信的库 过程。它建立在ZeroMQ和MessagePack之上。 支持流响应 - 类似于 python 生成器 - 使 ZeroRPC 比典型的 RPC 引擎更多。内置 检测信号和超时检测故障并从故障中恢复 请求。内省能力,一流例外 命令行实用程序使调试变得容易。

# 安装zerorpc 
pip install  zerorpc

# 启动内置服务
zerorpc --server --bind tcp://*:1234 time
zerorpc --client --connect tcp://127.0.0.1:1234 strftime "%F %T"

服务端

# zerorpc --server --bind tcp://*:1234 time
# zerorpc --client --connect tcp://127.0.0.1:1234 strftime "%F %T"

import zerorpc

class HelloRPC:
    """HelloRPC."""

    def hello(self, name):
        """hello
        :param name:
        """
        return "Hello,%s" %name

    @zerorpc.stream  # 流式处理
    def srange(self,fr,to,step):
        return range(fr,to,step)

s = zerorpc.Server(HelloRPC())
s.bind("tcp://0.0.0.0:1234")
s.run()

客户端

import zerorpc

c = zerorpc.Client()
c.connect("tcp://127.0.0.1:1234")
print(c.hello("RPC demo"))
for i in c.srange(0,10,2):
    print(i)