パソコン系@iに戻る
レスを初めから見る
いま注目の「サーバサイドJavaScript」
5 名無しさん 2011/03/01(Tue) 02:58
イベントループ
このイベントループという技術は、C10K問題で有名になった技術です。インターネット上のWebサービスが普及し、たくさんのクライアントからのリクエストを処理するためには、どのようなアーキテクチャが効率的かが議論されました。
特にApacheとNginx(エンジンエックス)が例に挙げられて、イベントループのアーキテクチャの優位性について、論じられてきました。Apacheは、スレッドベースで動作するアーキテクチャになっており、Nginxは、イベントループで動作します。スレッドベースの場合、クライアントからのリクエストごとに対応するスレッドを作成します。その際、メモリも確保されるため、同時接続するクライアントの数に比例して、使用するメモリ量も増えていきます。
例えば、ニュースなどで話題になったWebサービスに一時的にアクセスが殺到したとき、つながらなくなることがよくありませんでしょうか? これは、まさしくサーバが瞬間的なアクセス増大に耐えきれなくなってしまうことにより、起こっています。かといって、いつブレイクするか分からないWebサービスのために、メモリ容量などのサーバリソースを余分に確保しておくのは、なかなか難しいことです。
この問題を解決するアーキテクチャとして、イベントループが開発されました。イベントループは、シングルスレッドで動作します。では、シングルスレッドで、複数クライアントからのリクエストにどう対応するのでしょうか。その答えは、「ノンブロッキングI/O」です。
http://www.atmarkit.co.jp/fwcr/rensai2/nodejs01/01.html
前の5件
次の5件
戻る
レスを初めから見る