我正在寻找一种基于Python的非阻塞Web服务器环境,该环境旨在处理大量同时连接并在重负载(C10K)下响应。我需要它作为我的网络应用程序的后端。在典型方案中,Web 应用客户端将使用 WebSocket 对服务器进行多次调用。
到目前为止,我在 python 土地上找到了 2 个选项。
- 龙卷风网
- 扭曲的
在python之外当然有node.js,但如果可能的话,我更喜欢python编码环境。
您会推荐上述两个(或其他我不知道的)中的哪一个?什么是优缺点?或者我应该通过为 web.py 编写一些非阻塞前端来滚动自己的框架?
我担心的是,尽管上述两个项目似乎都有很好的社区支持,但它们并不像Django,CherryPy,Pylon等那样主流。因此,我害怕做出一个将来可能会得到糟糕支持的选择。
的核心开发者之一,我强烈建议您使用 Twisted。 :)
首先,因为它是一个优秀的库,拥有致力于高质量软件的开发团队。 Twisted 提供了极其广泛的功能,从(性能良好的)简单 Web 服务器到数据库集成(基于 Twisted 本身的线程或 txmysql 或 txpostgres 中的无线程,单独分发)到支持其他协议,如 FTP、DNS、XMPP、SMTP 等等。 是的,甚至是WebSockets。
其次,因为它是大型网络服务器的解决方案,就像你在Python中找到的那样。 由于您熟悉C10K,因此我认为我不需要对此进行阐述。 可以说,Twisted已经在大型系统中反复使用,以处理大量的连接。
第三,因为有一个庞大而活跃的社区,它不会很快消失,它提供了很多支持选择。 将邮件列表、IRC 频道和 stackoverflow 放在一起,不乏获得帮助的方法。
还有更多不错的选择。你应该查看Nicolas Piel对异步python服务器的非常好的评论。