Python 套接字、TCP
本质是这样的:有一个服务器,不同用户的信息随机地到达它。还有一个用户需要接收此信息。本质上是一个信使(虽然不是我写的)
我看到什么选项:
- 所有活动客户端都永久连接到服务器并准备好接收信息。但是,当用户数量较多时,服务器在维护连接方面的负载就会很高
- 客户端定期连接,向服务器询问新信息,接收它(如果有)并立即断开连接。如果处理器空闲等待,您可以使用线程同时处理多个用户。在这种情况下,不会花费大量资源来维护连接,但会出现延迟,并且更难以对用户进行优先级排序
请告诉我哪个选项更好或建议您自己的选项?)提前致谢!
在异步模式下,保持10万个连接不是问题。第一个选项适合小公司。
第二个选项不太好,因为在连接时您需要授权 Connect。而且负载不均匀。
在第一个和第二个之间有一种称为轮询的方法。连接的建立时间很短(无需维护),但同时捕获事件(即时传递)。如果程序对连接数量有限制,那么那些已经断开的连接将释放插槽并进入队列末尾,这也是一个优点。
Glitch:异步服务器,限制连接数量以适应内存,并且轮询将是一个出色的架构。但是,从哪里可以获得如此多的连接,以至于它们不再适合最便宜服务器的 512 MB RAM?