RPC 的 Python 实现 ToRPC

码农软件 · 软件分类 · RPC/XMLRPC项目 · 2019-04-11 14:11:41

软件介绍

ToRPC(Tornado + RPC) 是一个的基于 Tornado IOLoop 的异步TCP和双向通信的RPC的Python实现。ToRPC非常轻量级,性能优秀(尤其是在PyPy环境下)。

注意:目前为止,ToRPC只在CPython 2.7+和PyPy 2.5+上测试过。

示例

RPC 服务器

from tornado import ioloop
from torpc import RPCServer
server = RPCServer(('127.0.0.1', 5000))

@server.service.register()
def echo(x):
    return x

server.start()
ioloop.IOLoop.instance().start()

RPC 客户端

from tornado import ioloop, gen
from torpc import RPCClient

def result_callback(f):
    print(f.result())

@gen.coroutine
def using_gen_style():
    want_to_say = 'way to explore'
    ret = yield rc.call('echo', want_to_say)
    assert ret == want_to_say
    print('gen_style complete')

rc = RPCClient(('127.0.0.1', 5000))
rc.call('echo', 'hello world', callback=result_callback)
future = rc.call('echo', 'code for fun')
future.add_done_callback(result_callback)
using_gen_style()
ioloop.IOLoop.instance().start()

更多请浏览examples

Performance

系统: CentOS 6.6 x64

处理器: Intel i5-3470 3.20GHz

内存: 8 GB 1600 MHz DDR3

Python: 2.7.10 PyPy: 4.0.0

environment call coroutine(qps) callback(qps)
Python(with timeout) 9842 11614
Python 13192 16638
PyPy(with timeout) 40486 41225
PyPy 53252 59151
PyPy(unix domain) 67100 74362

这个基准测试中,Python循环10w次,PyPy循环50w次,然后运行3次, 结果在gist:benchmark_result.txt

本文地址:https://codercto.com/soft/d/3349.html

Tagging

Tagging

Gene Smith / New Riders / 2007-12-27 / GBP 28.99

Tagging is fast becoming one of the primary ways people organize and manage digital information. Tagging complements traditional organizational tools like folders and search on users desktops as well ......一起来看看 《Tagging》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试