web-dev-qa-db-ja.com

イベントドリブンWebサーバーとは

イベントドリブンWebサーバーの基本を理解したいのですが、そのうちの1つがトルネードであることは知っていますが、その他の情報は大歓迎です。

ありがとう

26
Anonymous

ここで説明されているこれの素晴らしいアナロジーがあります:

http://daverecycles.tumblr.com/post/3104767110/explain-event-driven-web-servers-to-your-grandma

25
Frank

Webサーバーは同時接続を処理する必要があります。これを行うには多くの方法があり、そのうちのいくつかは次のとおりです。

  • 接続ごとのプロセス。
  • 接続ごとのプロセスであり、すぐに使用できるプロセスのプールがあります。
  • 接続ごとのスレッド。
  • 接続ごとのスレッドであり、すぐに使用できるスレッドのプールがあります。
  • 単一のプロセスで、コールバックですべてのイベント(受け入れられた接続、読み取り可能なデータ、クライアントへの書き込みが可能など)を処理します。
  • 上記のいくつかの組み合わせ。
  • .。

最後に、違いは、各接続状態をどのように格納するか(明示的にコンテキスト構造に、暗黙的にスタックに、暗黙的に継続に...)と接続間のスケジュール方法(OSスケジューラにそれを行わせる)にあります。 、OSポーリングプリミティブにそれをさせてください、...)。

16
ninjalj

イベント駆動型の方法は、C10K問題の解決を目的としています。従来の「プッシュモデル」を「プルモデル」に変換して、非ブロッキングイベントI/Oを作成します。簡単に言えば、イベント駆動型アーキテクチャは、追加のスレッドやスレッドコンテキスト切り替えのオーバーヘッドの発生を回避し、通常、パフォーマンスが向上し、リソース消費が少なくなります。

Rails開発者からの概要、類推も含まれています: http://odysseyonrails.com/articles/8

1
Tristan.Liu