Python中的快速且可靠的分布式系统
项目描述
🌀 门户
Python中的快速且可靠的分布式系统。
功能
- 📡 通信: 门户允许您将函数绑定到
Server
,并从一个或多个Client
中调用它们。通过Future
对象等待结果。客户端可以自动恢复损坏的连接。 - 🚀 性能: 优化吞吐量和延迟。数组数据通过零拷贝序列化和反序列化,以接近硬件极限的吞吐量。
- 🤸 灵活性: 函数输入和输出可以是嵌套字典和数字、字符串、字节、None值以及Numpy数组的列表。字节允许应用程序选择自己的序列化,例如
pickle
。 - 🚨 错误处理: 提供了可以被父进程可靠杀死的
Process
和Thread
对象。线程中的未处理异常会停止程序。错误文件可以用于停止分布式系统。 - 📦 请求批处理: 使用
BatchServer
收集多个传入请求,并一次性处理它们,例如用于AI推理服务器。批处理和调度在一个单独的进程中发生,以释放GIL。 - ✅ 正确性: 覆盖了超过100个针对常见用途和边缘情况的单元测试,并用于大型分布式AI系统。
安装
pip install portal
示例
此示例使用子进程在同一Python程序中运行服务器和客户端,但它们也可以是运行在不同机器上的单独Python脚本。
def server():
import portal
server = portal.Server(2222)
server.bind('add', lambda x, y: x + y)
server.bind('greet', lambda msg: print('Message from client:', msg))
server.start()
def client():
import portal
client = portal.Client('localhost', 2222)
future = client.add(12, 42)
result = future.result()
print(result) # 54
client.greet('Hello World')
if __name__ == '__main__':
import portal
server_proc = portal.Process(server, start=True)
client_proc = portal.Process(client, start=True)
client_proc.join()
server_proc.kill()
print('Done')
问题
请为每个问题打开一个单独的GitHub问题。
项目详情
关闭
portal-3.5.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cd518e73cbdf50a04a4b5e43ea20f32e7f7c4d1e4ad031583ffb0852ab7a3e63 |
|
MD5 | 54b8c91d170159c6800a6258ae13c6d2 |
|
BLAKE2b-256 | 1e0de0855d4653adce1c4a0b92f530c56677b58a974475be23e40098d81964bc |