Concurrency 高性能(但不是哑的)web服务器
我正在尝试编写一个非常简单的web服务器,它可以执行以下操作:Concurrency 高性能(但不是哑的)web服务器,concurrency,webserver,node.js,threadpool,eventlet,Concurrency,Webserver,Node.js,Threadpool,Eventlet,我正在尝试编写一个非常简单的web服务器,它可以执行以下操作: 收到请求 用一个小文件回应;关闭连接 处理请求数据 换句话说,响应不依赖于请求信息,但请求信息仍然很重要。数据将被持久化,然后用于分析 我曾尝试使用一些事件驱动的网络框架来实现这一点,但它们似乎都会保持连接,直到处理代码返回。这是有意义的,因为一般来说,服务器在响应后不必做任何工作,但在我的情况下,不需要这种特殊的处理方式 理想情况下,服务器应保持对请求的响应,同时将请求数据添加到堆栈中,该堆栈在持久化时清空 我们期望每秒处理数千个
您可能想考虑阅读一些教程。
< P>我意识到,不是使用回调(或绿色线程,如果您愿意)来做任何实际的工作,我最好把委托数据委托给一个独立的应用程序。对此进行的一些研究表明,我使用了beanstalkd和RabbitMQ等工作队列beanstalkd似乎比竞争对手更轻、速度更快,所以我可能会坚持下去。您现在使用的是哪种平台和语言?看看
nginx
是免费的,您可以查看源代码。我现在正试图用Python来做这件事,但语言并不是特别重要。(虽然我真的不想在C中做任何事情:)一个用户可能会快速连续地执行多个请求,还是更像是许多用户都在执行一个请求?@thirtydot,许多用户都在执行一个请求。他们可能会要求一张gif图像,谷歌分析风格;检查问题的标签。Node.js看起来很不错,但据我所知,它不支持Thrift/Cassandra(我在这个项目中使用的数据库)。我也不确定它是否能够在处理函数中“返回前响应”。哦,我没注意到。所以,您的问题基本上是“是否使用node.js”?或者,您是否已经将这种方法抛到了窗外,正如您在上面所说的“我正试图用Python实现这一点”?如果是这样,为什么?缺乏Cassandra集成是一个阻碍,我想也许我应该坚持线程。我是网络编程新手,所以我试图从不同的角度去理解。和。在node.js中,您可以非常轻松地在处理请求数据之前发送响应。一直这样做:)