ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

ZCS5.0のJetty採用



もう間もなくリリースされるZCS5.0ではAPサーバー
として、Tomcatに代わってJettyが使われています。


その一番の理由はContinuationのサポートです。
CometをLong-Polling方式で実装しようとする際、
クライアントへのプッシュのためにレスポンスを
保留する待機スレッドの増加が問題になります。


Jettyの場合には待ち状態に入って処理を中断した
スレッドを一旦プールに戻すというSuspend/Resume
の仕組みを実現しています。
この方式のメリットはacceptして処理スレッドを
立ち上げて...といった従来型コードから変更箇所
が少なくて済むという点です。
確かに現在稼動しているWebアプリをTomcat6の
サンプルにあるようなCometProcessorを使った
実装に変えるとなるとかなり大変な感じです。


このJettyのContinuation方式はDWT2.0でもサポート
されており、今後も引き続き注目の実現方式の一つ
となりそうです。


ですが、チャットや株価情報配信のように全ての
クライアントに一斉に同報する必要があるケース
では、プールされている全スレッドの処理を同時
に再開しないといけないので、負荷の増大や遅延
がちょっと心配です。


CometはServelt3.0にも盛り込まれるようですし、
今後ノウハウが蓄積されてくるだろうと思います。
それらを見据えつつ、自分としても様々な検証や
実験をして洗練させていきたいと考えています。