posts - 66,  comments - 40,  trackbacks - 0

          Netty2: 事件驅動的NIO框架

          Netty 2 提供了一組很容易的基于事件的API(類似于Swing)來開發高性能, 可管理的TCP/IP服務端或客戶端應用程序. 對于要求建立高性能的的網絡應用來說,Netty提供許多基本特性,像readiness selection, 線程池, 寫緩沖DoS的預防, 可重用的緩沖等.

          特性:

          * 基于事件的API: Netty處理所有低級I/O調用
          * 信息格式與工作流程是相互獨立的
          * 以面向對象的方式實現通訊協議
          * Java NIO
          * 內建線程池
          * 字節緩沖池
          * 可自定的事件分發: 具有彈性的線程調度
          * '寫緩沖溢出'的預防:
          ??? * 偵測過慢的客記端
          ??? * 清除已發送信息,避免資源不足
          * JMX兼容: 線程池和公共配置就是MBean.

          架構:

          * I/O Processor執行I/O操作, 將它們解釋為session事件, 并傳遞到EventDispatcher.
          * EventDispatcher分發事件到相關的SessionListeners.
          * 讀信息總是調用MessageRecognizer來從socket通道讀取送來的數據, 從而識別出相關信息對象。

          Message接口:

          在Netty中,Message是通訊的基本單位。它提供了read和write方法來存取緩沖中的信息。

          MessageRecognizer接口:

          通過前面的架構圖我們知道Netty的工作是基于Session的。當條件成立的,session會自動觸發相應的I/O事件,在session內部,當數據收到時,I/O工作線程會調用MessageRecognizer的recognize(ByteBuffer buf)方法,從字節重組得到Message對象。然后再觸發messageReceived事件。所以如果你定義了自己的消息格式,還要實現MessageRecognizer接口來將緩沖區中接收到的字節碼重組為你的Message格式。

          接收Message:

          為了方便,這里沒有畫出MessageRecognizer。

          發送Message:

          ?

          posted on 2006-06-20 19:40 happytian 閱讀(483) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          Welcome here, my friend!

          常用鏈接

          留言簿(12)

          隨筆檔案(66)

          文章分類

          文章檔案(63)

          web

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 89702
          • 排名 - 647

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 页游| 新兴县| 兰西县| 柘城县| 三都| 辽中县| 英吉沙县| 凯里市| 湖南省| 灵璧县| 祁阳县| 宁南县| 墨竹工卡县| 乐陵市| 昌邑市| 淮阳县| 揭阳市| 光山县| 长葛市| 罗定市| 阳新县| 巴林左旗| 通榆县| 读书| 湘潭县| 民和| 灵宝市| 和硕县| 郑州市| 山丹县| 海安县| 中山市| 金平| 太原市| 海口市| 阿坝县| 澄江县| 霍城县| 澜沧| 平安县| 保亭|