用于编写(微)服务和其客户端的Python库
项目描述
PySOA是一个基于RPC(远程过程调用)调用风格的通用库,用于编写快速的Python(微)服务和其客户端。它提供客户端和服务器,可以直接使用,或者(正如我们所做的那样)扩展以添加额外功能(我们的身份验证、数据库路由和其他代码作为私有中间件编写,并在该库之上运行)。
PySOA使用可插拔的“传输”概念来定义客户端和服务器之间发送请求和响应(消息)的层。默认的、生产就绪的包含传输是一个Redis pub-sub层,我们将其与Redis Sentinel一起在集群中使用。单个Redis集群能够以极高的效率和期望的负载均衡属性每秒处理成千上万的PySOA消息。还有一个本地传输实现,主要用于测试和演示,但在适当的情况下也可以用于生产。
基本原则
服务和操作都具有简单的名称,可以通过名称由客户端调用。您可以单独调用操作,或者将多个操作调用捆绑成一个“任务”以串行运行(在出错时可以选择中止或继续)。
请求和响应只是Python字典,PySOA使用我们的开源验证框架Conformity来验证它们的模式。
默认情况下,消息体使用MessagePack进行编码(然而,您可以定义自己的序列化器),一些非标准类型使用MessagePack扩展进行编码,例如日期、时间、日期时间以及货币金额(使用我们的开源currint库)。
请求有一个上下文,它来自原始客户端上下文(Web请求、API请求等),并自动链入服务内部后续的客户端调用。这用于上下文请求信息,如关联ID、认证令牌、区域设置等。
我们将“SOA开关”作为功能标志/切换的第一方实现。作为上下文的一部分,它们与每个请求捆绑在一起,并自动链入,以整数形式打包以确保它们具有最小的开销。
本简介总结了使用PySOA的一些关键概念。有关更详细的文档,请参阅PySOA文档。
许可证
PySOA采用Apache License,版本2.0授权。
安装
PySOA在PyPi上可用,可以通过Pip直接安装或在setup.py、requirements.txt或Pipfile中列出。
pip install 'pysoa~=1.2'
install_requires=[
...
'pysoa~=1.2',
...
]
pysoa~=1.2
pysoa = {version="~=1.2"}
文档
完整的PySOA文档可在Read the Docs上找到!
项目详情
哈希值 for pysoa-1.4.9-py27.py35.py36.py37.py38-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4854bd084ab3578290ac470a778f70a6336b3efd8333b2c50c484cb661003fb1 |
|
MD5 | 193d3d97d16d57b6c1bc68b8a3052983 |
|
BLAKE2b-256 | 5cb1ff406baa0d1c64fec80262ebe1bc02e3d9bf2a33693122b083068639c2d8 |