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

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 89726
          • 排名 - 647

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 成武县| 阳谷县| 大名县| 杂多县| 屏东市| 长沙县| 宝鸡市| 龙井市| 惠来县| 万山特区| 满洲里市| 乐平市| 西峡县| 九江县| 含山县| 临颍县| 浠水县| 柘荣县| 济宁市| 许昌市| 泰兴市| 三江| 株洲市| 东港市| 米易县| 壶关县| 白水县| 交城县| 临泽县| 周口市| 布尔津县| 临安市| 甘洛县| 竹北市| 奉化市| 庆云县| 沙洋县| 江北区| 余庆县| 东安县| 冷水江市|