【发布时间】:2011-05-26 13:08:39
【问题描述】:
我正在尝试编写一个非常简单的 Web 服务器,它执行以下操作:
- 接收请求。
- 以小文件响应;关闭连接。
- 处理请求数据。
换句话说,响应不依赖于请求信息,但请求信息仍然很重要。数据将被持久化,然后用于分析。
我曾尝试使用一些事件驱动的网络框架来做到这一点,但它们似乎都保持连接直到处理代码返回。这是有道理的,因为通常服务器在响应后不需要做任何工作,但在我的情况下,不需要这种特殊的做事方式。
理想情况下,服务器应不断响应请求,同时将请求数据添加到堆栈中,该堆栈在持久化时被清空。
我们希望每秒处理数千个请求。事件驱动编程真的是要走的路,还是我应该坚持(传统)线程?哪种语言或框架更适合这种工作?
谢谢。
【问题讨论】:
-
您现在使用哪种平台和语言?
-
看
nginx是免费的,可以看源码 -
目前我正在尝试在 Python 中执行此操作,但语言并不是特别重要。 (虽然我真的不想在 C 中做任何事情。:)
-
一个用户可能会快速连续执行多个请求,还是更像是多个用户每个执行一个请求?
-
@thirtydot,许多用户每个都做一个请求。他们可能会要求提供 Google Analytics 风格的 gif 图片。
标签: concurrency webserver node.js threadpool eventlet