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

深入分析結(jié)構(gòu)圖

mina的基本應(yīng)用可以分為3層:
1、I/O Serivce:實(shí)際執(zhí)行I/O層
2、I/OFilter chain:數(shù)據(jù)過濾和轉(zhuǎn)換層,主要是把字節(jié)轉(zhuǎn)換為需要的數(shù)據(jù)格式或者反過來處理
3、I/OHandler:業(yè)務(wù)處理層
創(chuàng)建Mina應(yīng)用分為3部分:
1、創(chuàng)建I/O 2、創(chuàng)建過濾鏈
3、創(chuàng)建I/O業(yè)務(wù)處理