3

我正在尝试编写一个非常简单的 Web 服务器,它执行以下操作:

  1. 接收请求。
  2. 回复一个小文件;关闭连接。
  3. 处理请求数据。

换句话说,响应不依赖于请求信息,但请求信息仍然很重要。数据将被持久化,然后用于分析。

我尝试使用一些事件驱动的网络框架来做到这一点,但它们似乎都保持连接,直到处理代码返回。这是有道理的,因为通常服务器在响应后不必做任何工作,但在我的情况下,不需要这种特殊的做事方式。

理想情况下,服务器应该继续响应请求,同时将请求数据添加到堆栈中,该堆栈在持久化时被清空。

我们希望每秒处理数千个请求。事件驱动编程真的是要走的路,还是我应该坚持(传统)线程?哪种语言或框架更适合这种工作?

谢谢。

4

2 回答 2

1

你考虑过使用Node.js吗?它允许您使用 javascript 快速轻松地编写面向 http 的服务器程序。它似乎非常适合您的需求,因为它的行为是可定制的,并且据说可以很好地扩展。

您可能需要考虑阅读一些教程。

于 2010-12-16T13:13:56.853 回答
0

我意识到,与其使用回调(或绿色线程,如果你愿意的话)来做任何类型的实际工作,我最好将请求数据委托给一个独立的应用程序。对此的一些研究将我指向了像 beanstalkd 和 RabbitMQ 这样的工作队列。

beanstalkd 似乎比竞争对手更轻、更快,所以我可能会坚持下去。

于 2010-12-20T18:35:18.837 回答