我正在寻找一个基于Python的非阻塞Web服务器环境,该环境旨在处理大量的并发连接,并在高负载(C10K)下响应。我需要它作为我的webapp的后端。在典型的场景中,webapp客户端将使用WebSockets对服务器进行多次调用。
到目前为止,我在python land中找到了2个选项。
外部python当然有node.js,但如果可能,我更喜欢python编码环境。
您会推荐以上两种(或其他我不知道的)中的哪一种?什么是利弊?或者我应该通过为web.py写一些非阻塞前端来推出自己的框架吗?
我担心的是,尽管上述两个项目似乎都得到了良好的社区支持,但它们并不像Django,CherryPy,Pylon等那样主流。因此我害怕做出选择,最终可能会得到不良支持。
答案 0 :(得分:4)
作为核心Twisted开发人员之一,我强烈建议您使用Twisted。 :)
首先,因为它是一个拥有开发团队committed to high quality software的优秀图书馆。 Twisted提供了非常广泛的功能,范围从(well performing) simple web server到数据库集成(基于Twisted本身的线程或txmysql中的无线程或txpostgres分开分发)以支持其他协议,如FTP,DNS,XMPP,SMTP等等。是的,even WebSockets。
其次,因为它对于大型网络服务器来说是一个很好的解决方案,就像在Python中找到的那样。由于您熟悉C10K,我认为我不需要对此进行详尽阐述。我只想在has been used中反复使用large scale systems来处理huge numbers of connections。
第三,因为有一个庞大的,活跃的社区,不会很快消失,提供了很多支持选择。将邮件列表,IRC频道和stackoverflow结合在一起,不乏获得帮助的方法。
答案 1 :(得分:3)
还有更多不错的选择。你应该查看Nicolas Piel的very good review of asynchronous python servers。