gpt4 book ai didi

python - Gevent 与 Stream Server 的数据库连接池

转载 作者:太空狗 更新时间:2023-10-30 03:05:14 27 4
gpt4 key购买 nike

我正在使用 Python Gevent 的流服务器与另一台发送并发 TCP/IP 请求(平均 60 请求/秒)的机器(远程)通信。这种通信的本质主要是 IO 绑定(bind)(短文本,然后是音频流)。我打算使用 Postgresql 来存储每次通信的结果(例如:从远程服务器接收到的文件名)。

我认为为 Streamserver 中生成的每个 greenlet 调用一个新的数据库连接是个坏主意(池大小 90,所以 90 请求/秒最大值,这是我期望的最大值,平均 60 请求/秒)。是否有可能有可以排队的数据库连接池,并且每个 greenlet 在开始运行处理程序函数时都从池中获取数据库连接?是否有适用于生产系统的教程?你会怎么建议?我在 Ubuntu 10.04 64 位上使用 gevent 0.13.8 和 postgres 9.1 以及 Python 2.7.3。

最佳答案

应用程序内池的替代方法是使用 PgBouncer 进行池化.您仍然需要 TCP 连接和一些设置的开销,但大大比创建一个全新的 PostgreSQL session 要少。

与应用程序内池不同,PgBouncer 可以透明地引入现有系统,作为 PostgreSQL 和池之间的中介。只需将 PostgreSQl 移动到端口 5433 并让 PgBouncer 监听端口 5432。

关于python - Gevent 与 Stream Server 的数据库连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13199949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com