【发布时间】:2015-09-23 14:17:34
【问题描述】:
逻辑:
客户端 Python 中的服务器端口监听脚本(例如 TCP 端口 11112)
- 每个客户端设备(例如 GPS 设备)都连接到服务器端口并建立成功连接。
- 连接后,我们需要保持该特定设备的连接有效且稳定。
- 在并行中,我们需要接受来自同一端口中其他设备的连接。
- 我们在 python 中使用多线程概念实现了这一点。一个线程将与一个设备建立专用连接。
- 一旦一段时间内没有数据,线程将被关闭。
到目前为止,此逻辑适用于 20 个并行连接的设备。
我们预计很快将与 100 万台设备建立连接。 在 python 中处理设备和服务器之间大量活动连接的最佳解决方案是什么?
注意:我们可以设置多个端口并确保端口之间共享负载,但活动连接限制(Alternate for Threading)必须是我们的重点。
【问题讨论】:
-
你绝对应该使用
asyncio或类似的框架。 -
当您达到该连接数时,即使 TCP 每个连接的内存开销也过多。 Trickles 被提议作为解决方案,因为它对于服务器来说是无状态的。
标签: python multithreading sockets tcp multiprocessing