第一次接觸mina這個物件,在網上看了一些相關的資料,同時也參考了別人的一些分析mina的心得和方式!
mina是何物?
Mina是一個用于開發高性能和高可用性的網絡應用程序基礎架構,它封裝了底層的I/O和線程并發等復雜工作。
Mina主要是基于java NIO類庫開發;采用非阻塞方式的異步傳輸、事件驅動、批量數據傳輸;支持TCP、UDP網絡協議
首先從服務器端啟動NioSocketAcceptor對象進行分析。
1、實例化DefaultSocketSessionConfig會話配置器和異步傳輸NioProcessor處理器
2、實例化AbstractPollingIoAcceptor構造器同時實例化SimpleIoProcessorPool處理器池
--〉在SimpleProcessorPool中初始化執行器<線程池>,然后初始化一個IoProcessor對象數組,長度為3,最后將處理器對象放入到IoProcessor數組中
--〉處理化傳輸帶元數據
--〉初始化服務監視器
--〉初始化異常監視器
3、初始化過濾鏈
4、初始化選擇器
架構介紹
應用結構圖

深入分析結構圖

mina的基本應用可以分為3層:
1、I/O Serivce:實際執行I/O層
2、I/OFilter chain:數據過濾和轉換層,主要是把字節轉換為需要的數據格式或者反過來處理
3、I/OHandler:業務處理層
創建Mina應用分為3部分:
1、創建I/O 2、創建過濾鏈
3、創建I/O業務處理