maeshimaの日記

メモ書きです

eventmachine

EventMachine: Get Excited By Scalable Non-Blocking I/Oを読んで。なんか注目されてるっぽいけどどんなライブラリなのかよくわかってないので調べた。

eventmachine @ GitHub

eventmachineとは

Ruby/EventMachineはシングルスレッドで高速に動作するネットワークプログラミングのためのライブラリでIPレイヤを扱うコア部分はC++で実装されている。(Pure Ruby版も用意されている。)

イベントドリブンなアーキテクチャで実装されており、ユーザは IP層を全くほとんど意識することなくプロトコルの実装に集中できるように設計されている。ユーザが書くソースコードでは決まったクラスを継承し決まったメソッドをオーバーライトするだけでよい。

http://rakuto.blogspot.com/2007/05/ruby-rubyeventmachine.html

非同期サーバってなんぞ

1つのスレッド/プロセスが専属で1つのリクエストを処理するようなモデルだと、これらの「時間のかかるリクエスト」は同時に多数に受け付けることが出来ない(スレッド/プロセス数までしか受け付けない)。で、非同期サーバーの要件ってのは、これらの処理をする際に一つのスレッドで複数のリクエストを同時に処理できること

http://subtech.g.hatena.ne.jp/mala/20090908/1252418480