torpc

ToRPC:一个双向RPC的Python实现

偶尔善良 提交于 2019-12-04 01:45:30
简介 ToRPC(Tornado + RPC) 是一个的基于Tornado IOLoop的异步TCP和双向通信的RPC的Python实现。ToRPC非常轻量级,性能优秀(尤其是在PyPy环境下)。 特性 异步 tcp 通信 异步、双向 rpc 地址: https://github.com/yoki123/torpc 背景 在Python中,消息队列、RPC框架都有很多,很多框架的完成度和稳定性都不错了,但是速度却不尽人意(真的就是慢),于是产生了造一个轮子的想法————一款可以压榨服务器资源的RPC框架。 对比多款框架后,发现了 A fast MessagePack RPC library ,它是基于Cython、Gevent、MsgPack完成的一款,它的简洁和高性能吸引了我,再使用过程中,我试图再优化的时候,发现基本上已经达到CPU和网络I/O的瓶颈。 因为使用Cython和gevent,后者底层也是C语言实现的,那么CPU消耗是没有的办法的时候,将MsgPack换成速度更快的marshal速度提升了10%左右,但是流量随之增加了,最后还要考虑marshal跨版本时的兼容问题(ToRPC目前也是marshal)。 既然达到瓶颈了,试试别的框架吧,后来又找到了 echo servers in many languages 。 根据这个代码,Python部分的Echo