Category Archives: Java

JBoss Netty2

JBoss Nettyを使ったHelloサーバを作成してみる。 改行コードで区切られた各文字列をリクエストとする リクエストが「quit」の場合は「Bye!」を返し、接続を閉じる リクエストが「quit」以外の文字列の場合は、それを名前と見なして「Hello [名前]!」を返す リクエストが空文字列の場合は「What?」を返す パイプラインの設計 HelloServerHandler 下流のStringDecoderから文字列を受け取り、プロトコルに沿って生成したレスポンスを返す

Posted in Java | Leave a comment

Ubuntu 10.04上でJBoss Application Server構築

JBOSS 5.1 on Ubuntu 10.04を参考に。 java-6-openjdkをSynapticからインストール /usr/local/jbossの下にjboss-5.1.0.GA.zipを展開する。 JDKのパスが違うので下記指定。 127.0.0.1:8080にアクセス。

Posted in Java | Leave a comment

JBoss Netty1

はじめに Javaで非同期I/Oプログラミングを行なうには、バージョン1.4から追加されたNIO(New I/O)を使用する。 NIOをラップした非同期フレームワーク「JBoss Netty」についてご紹介。 Javaでの同期I/O Javaで同期I/Oを行なう場合、 java.ioパッケージの InputStreamクラス OutputStreamクラス InputStreamReaderクラス BufferedReaderクラス または、java.netパッケージの ServerSocketクラス Socketクラス を使う。 Javaでの非同期I/O Javaで非同期I/Oを行なうには、Java1.4から実装されたjava.nioパッケージの NIO API を使う。 同期I/OとClock問題 同期I/Oを使ったサーバプログラム シングルスレッドのままだと1度に1つのクライアントしか処理できないため、スレッドプールを使い、入出力処理をワーカスレッドに任せる。 スレッド数が1万を超えるとメモリ消費やコンテキストスイッチにパフォーマンス低下が著しく、サーバが不安定に。 同期I/Oのマルチスレッド方式がネックとなり、1台のサーバで大量の同時接続数を受け付けることが難しくなる。・・・C10K問題 非同期I/Oとイベント駆動モデル NIOによる非同期型サーバプログラムの例 非同期I/Oのソケット通信速度は同期I/Oに劣る。

Posted in Java | Leave a comment