跳转到主要内容

快速MessagePack RPC库

项目描述

根据Apache许可证版本2.0(“许可证”)授权;
除非遵守许可证,否则不得使用此文件。
您可以在以下位置获取许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件
按“原样”基础分发,
不提供任何形式的明示或暗示保证。
有关许可证下权限和限制的具体语言,请参阅许可证。
...

描述:mprpc
=====

.. image:: https://badge.fury.io/py/mprpc.png
:target: http://badge.fury.io/py/mprpc

.. image:: https://travis-ci.org/studio-ousia/mprpc.png?branch=master
:target: https://travis-ci.org/studio-ousia/mprpc

mprpc是一个轻量级的`MessagePack RPC <https://github.com/msgpack-rpc/msgpack-rpc>`_库。它通过编写少量代码,使您能够轻松构建分布式服务器端系统。它建立在`gevent <http://www.gevent.org/>`_和`MessagePack <http://msgpack.org/>`_之上。


安装
------------

要安装mprpc,只需

.. code-block:: bash

$ pip install mprpc

或者,

.. code-block:: bash

$ easy_install mprpc

示例
--------

RPC服务器
^^^^^^^^^^

.. code-block:: python

from gevent.server import StreamServer
from mprpc import RPCServer

class SumServer(RPCServer)
def sum(self, x, y)
return x + y

server = StreamServer(('127.0.0.1', 6000), SumServer())
server.serve_forever()

RPC客户端
^^^^^^^^^^

.. code-block:: python

from mprpc import RPCClient

client = RPCClient('127.0.0.1', 6000)
print client.call('sum', 1, 2)


带有连接池的RPC客户端
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: python

import gsocketpool.pool
from mprpc import RPCPoolClient

client_pool = gsocketpool.pool.Pool(RPCPoolClient, dict(host='127.0.0.1', port=6000))

with client_pool.connection() as client
print client.call('sum', 1, 2)


性能
-----------

mprpc显著优于`官方MessagePack RPC `_(**1.8倍**更快),后者使用`Facebook的Tornado `_和`MessagePack `_构建,以及`ZeroRPC `_(**14倍**更快),后者使用`ZeroMQ `_和`MessagePack `_构建。

结果
^^^^^^^

.. image:: https://raw.github.com/studio-ousia/mprpc/master/docs/img/perf.png
:width: 550px
:height: 150px
:alt: 性能比较

mprpc
~~~~~

.. code-block:: bash

% python benchmarks/benchmark.py
调用: 9508 qps
使用连接池的调用: 10172 qps


官方MessagePack RPC
~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: bash

% pip install msgpack-rpc-python
% python benchmarks/benchmark_msgpackrpc_official.py
调用: 4976 qps

ZeroRPC
~~~~~~~

.. code-block:: bash

% pip install zerorpc
% python benchmarks/benchmark_zerorpc.py
调用: 655 qps


文档
-------------

文档可在http://mprpc.readthedocs.org/找到。

关键词: rpc,msgpack,messagepack,msgpackrpc,messagepackrpc,messagepack rpc,gevent
平台: 未知
分类: 开发状态 :: 4 - 测试版
分类: 目标受众 :: 开发者
分类: 自然语言 :: 英语
分类: 许可证 :: OSI批准 :: Apache软件许可证
分类: 编程语言 :: Python
分类: 编程语言 :: Python :: 2.6
分类: 编程语言 :: Python :: 2.7
分类: 编程语言 :: Python :: 3.3
分类: 编程语言 :: Python :: 3.4
分类: 编程语言 :: Python :: 3.5

项目详情


下载文件

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

源分布

mprpc-0.1.17.tar.gz (116.0 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面