• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

Webアプリサーバーの常識を覆す「Node.js」

スタバ方式で「C10K問題」を解消

福田 崇男=日経コンピュータ 2012/07/31 日経コンピュータ
出典:日経コンピュータ2011年12月22日号
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

 WebアプリケーションサーバーソフトのNode.jsには、これまでのWebアプリケーションサーバーとは全く異なる四つの特徴がある(図1)。(1)多くのアクセス要求を処理できること、(2)JavaScriptでアプリケーションを開発できること、(3)アドオンが充実していること、(4)様々な種類のサーバーとして動作すること、である。これらの特徴を順に見ていこう。

図1●Webアプリケーションサーバーソフト「Node.js」の主な特徴
[画像のクリックで拡大表示]

 一つめの特徴は、ピグライフのように1万台規模のクライアントからのアクセス要求をさばけることだ。従来のWebサーバーとは異なる「ノンブロッキングI/O(インプット/アウトプット)」と呼ばれる考え方を取り入れることで、これを実現する。

 この考え方は、スターバックスの接客方式をイメージすると分かりやすい。客はレジで注文と支払いを済ませると、配膳口近くで注文した飲み物ができるのを待つ。飲み物ができたかどうかに関係なく、レジでは次々と注文を受け付ける。配膳口では、できた順に商品を客に渡す。このため昼時に多数の来客があっても、レジ前の行列はできにくい。

 Node.jsのメカニズムもこれに近い。時間がかかっている処理の完了を待つことなく、次の処理を実行する。通信相手との同期をとらず、処理完了も待たず、一つのプロセスで次々と処理をこなす。そのため「非同期処理」とも呼ばれる。

 実はWebアプリケーションサーバーの多くは、「C10K問題」と呼ばれる難題を抱えている。アクセスするクライアント数が1万を超えると、サーバーのスレッド(並列処理の単位)数が増えすぎて、サーバーのメモリーなどのリソースが不足してしまうという問題だ。そのため、プロセッサの処理能力に余裕があっても、サーバーの台数を増やさねばならず、大規模なシステムを運用する必要が生じる。一方、非同期処理のNode.jsの場合は、このC10K問題が起きない。

ここから先はITpro会員(無料)の登録が必要です。

次ページ どのように非同期処理を実現しているのか
  • 1
  • 2

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

設計/開発

サーバー/ストレージ

ネットワーク/通信サービス

セキュリティ

もっと見る