国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

解析Mina代碼三部曲

開發 后端
首先,Mina是什么?能幫我們做什么?我研究一個新技術的時候,首先問的就是這樣的問題。我個人的理解就是Mina是一個關注于通訊層的框架,任何需要底層通訊的應用,都可以使用它。

首先,Mina是什么?能幫我們做什么?我研究一個新技術的時候,首先問的就是這樣的問題。我個人的理解就是Mina是一個關注于通訊層的框架,任何需要底層通訊的應用,都可以使用它。更詳細準確的介紹,請看官方網站http://mina.apache.org/

Mina的優勢:

1. 用NIO實現,無需太多線程。可以處理的并發量更大。

2. 對于應用層來說,編程更方便。

好了廢話少說,先看個Demo吧

 

  1. public static void main(String[] args) throws IOException {  
  2.     // 創建Acceptor   
  3.     IoAcceptor acceptor = new NioSocketAcceptor();  
  4.  
  5.     // 注冊filter   
  6.    acceptor.getFilterChain().addLast( "logger"new LoggingFilter() );  
  7.    acceptor.getFilterChain().addLast( "codec"new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));  
  8.  
  9.     // 注冊你的業務處理類   
  10.     acceptor.setHandler( new TimeServerHandler() );  
  11.  
  12.     // 配置參數   
  13.     acceptor.getSessionConfig().setReadBufferSize( 2048 );  
  14.     acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );  
  15.  
  16.     // 讓Acceptor在綁定的地址偵聽   
  17.     acceptor.bind( new InetSocketAddress(PORT) );  
  18. }  

 

IoHandler
  1. public interface IoHandler {  
  2.  
  3.      void sessionCreated(IoSession session) throws Exception;  
  4.  
  5.      void sessionOpened(IoSession session) throws Exception;  
  6.  
  7.      void sessionClosed(IoSession session) throws Exception;  
  8.  
  9.      void sessionIdle(IoSession session, IdleStatus status) throws Exception;  
  10.  
  11.      void exceptionCaught(IoSession session, Throwable cause) throws Exception;  
  12.  
  13.      void messageReceived(IoSession session, Object message) throws Exception;  
  14.  
  15.      void messageSent(IoSession session, Object message) throws Exception;  
  16. }   

首先new一個Acceptor,可以看出,Acceptor是我們要操作的服務器對象。然后,向Acceptor里注冊了兩個filter。filter的概念類似于web服務器里的filter。filter處于你的業務端代碼和具體的發送數據代碼之間,它負責過濾或者說處理傳遞過來的信息。業務處理代碼,寫在Handler里。

代碼結構相當的清晰。我們需要填寫的業務代碼就是 Handler 和 Filter了。它們倆很相似,但是在概念上是有區別的。filter事實上主要是處理底層的通信字節流,通信協議等,一般跟業務邏輯沒什么關系。Handler是專門暴露給應用開發者,用來填寫業務處理代碼的。

看看下面的圖便知道了

 

 

#p#

Mina暴露給開發者的接口主要是IoAcceptor(服務器端)或者IoConnector(客戶端)。Mina內部具體是怎么實現偵聽,處理連接的呢?我們先來介紹一下Mina的方法哲學或者說術語吧。

IoSession

IoSession: IoSession是一個客戶連接的抽象,整個通訊框架可以說,都是圍繞著IoSession工作的。

IoAcceptor: 初始化服務器,用的就是它

IoProcessor: 負責處理IoSession,包括創建,移除,讀寫事件的處理

IoFilter: 過濾消息或者說消息處理(通訊層的)

IoHandler: 消息處理(應用邏輯層的)

通訊層的核心類,事實上是IoAcceptor,IoProcessor,IoSession。在這里我們只分析IoAcceptor模式,也就是服務器端的代碼。客戶端的代碼與此類似,大家可以自己研究。

首先,調用IoAcceptor.bind()方法時,服務器已經初始化完畢,這時服務器就在指定的端口上開始偵聽客戶端發來的連接請求。

當IoAcceptor偵聽到客戶端請求時,它就會把這個請求交給IoProcessor進行處理。然后IoAcceptor回去繼續偵聽。顯然,IoAcceptor的工作流程就是 偵聽 --> 傳遞請求 --> 繼續偵聽。

IoProcessor得任務則是處理這些連接的IO事件。顯然IoProcessor不可能和IoAcceptor在同一個線程里運行。他們兩個分工不同,可以并發執行。Mina內部事實上維護了一個IoProcessor對象池,對象池的默認大小是CPU個數+1.也就是說,如果你的機器是4核的,可能就有5個IoProcessor(可以理解為線程)同時工作。

看看下面的示意圖吧,一圖勝千言:

 

 

 

 

#p#

在這里主要分析IoAcceptor 和 IoProcessor。

IoAcceptor比較簡單,它的核心代碼都在AbstractPollingAccetor里,輪詢代碼在它的內部類Accetpor里的run方法里。請看下面的UML圖:

 

 

IoProcessor比較復雜,它的主要代碼是在AbstractPollingProcessor里的,輪詢代碼在它的內部類Processor里的run方法實現。值得注意的是,IoAcceptor所持有的IoProcessor引用,事實上是一個對象池。對象池負責調度某個Processor來處理請求。下面是UML類圖

 

【編輯推薦】

  1. 巧解使Eclipse崩潰的JVM terminated問題
  2. JVM terminated令Eclipse崩潰問題的解決
  3. Java編譯過程與c/c++編譯過程有何不同
  4. 淺談jvm.dll裝載過程與源代碼分析
  5. Java虛擬機(JVM)中的內存設置詳解
責任編輯:金賀 來源: JavaEye博客
相關推薦

2011-03-25 09:56:40

Nagios 安裝

2009-09-14 09:04:17

CCNA考試CCNA

2010-07-17 01:12:31

Telnet服務

2010-09-26 14:39:40

DHCP故障分析

2010-09-06 09:22:26

CSS語法

2013-06-28 09:35:04

Hypervisor虛擬化成本

2022-10-10 09:10:51

家庭網絡網絡

2011-03-21 09:22:46

Tomcat

2017-04-11 09:07:20

互聯網

2017-02-07 14:50:39

華為

2012-09-10 16:19:00

云計算公共云

2015-05-12 10:42:53

程序員代碼

2011-08-29 16:26:50

魔獸世界LUA

2018-03-19 09:35:37

人工智能

2010-09-14 16:54:18

2018-03-18 15:51:59

人工智能潛力首席數據官

2019-03-28 14:45:33

數據安全數據泄露信息安全

2010-05-12 10:51:06

2011-08-03 10:33:05

網絡管理網絡拓撲管理

2009-10-22 13:09:19

VB.NET動態控件數
點贊
收藏

51CTO技術棧公眾號

亚洲综合欧美在线| 97se综合| 开心久久婷婷综合中文字幕| 国产在线精品视频| 欧美影院精品一区| 久久国产精品-国产精品| 成人亚洲综合天堂| 国产成人手机高清在线观看网站| 亚洲欧美一区二区三区久本道91| 久久香蕉国产线看观看av| 一区二区成人| 成人av网址在线| 久久riav二区三区| 亚洲丁香日韩| 亚洲欧美在线x视频| 久久久久久青草| 国产精品久久毛片a| 99re8这里只有精品| 亚洲大黄网站| 国产福利精品av综合导导航| 久久久亚洲午夜电影| 成人黄色免费在线观看| 精品国产乱码一区二区三区| 欧美一区二区三区视频免费| 久草在.com| 国产午夜精品在线观看| 久久av一区二区| 欧美激情国产在线| 97精品久久久| 四虎成人精品一区二区免费网站| 精品国产免费视频| 91官网在线| 在线视频亚洲一区| 亚在线播放中文视频| 中文字幕一区二区三区在线播放| 欧美视频在线观看网站| 国产一区二区日韩精品| 人偷久久久久久久偷女厕| 国产精品a久久久久| 亚洲激情综合| 国产成人综合精品在线| 女人av一区| 欧美成人午夜激情视频| 国产黄大片在线观看| 亚洲最色的网站| 国产精品69页| 91免费版在线| 色片在线免费观看| 欧美成人亚洲| 成人av在线亚洲| 91麻豆国产自产在线观看亚洲| 91国偷自产一区二区三区的观看方式| 99国内精品久久久久| 久久精品国产久精国产思思| 日韩三级成人| 国内精品久久影院| 国产不卡一区| **亚洲第一综合导航网站| 欧美日韩网站| 欧美日韩免费精品| 免费精品视频在线| 午夜精品一区二区三区四区 | 久久欧美中文字幕| 欧美日韩在线成人| 夜夜嗨av一区二区三区四季av| 亚洲色图16p| 欧美一区二区三区喷汁尤物| 日韩伦理在线观看| 激情伦成人综合小说| 1024精品合集| 成人高清免费观看mv| 欧美寡妇偷汉性猛交| 国产精品视频一区视频二区| 久久99国产精品自在自在app| youjizz亚洲| 国产91色综合久久免费分享| 亚洲精品福利在线观看| 三上悠亚亚洲一区| 欧美精品www| 天天av综合| 亚洲精品国产精品久久| 99久久综合精品| 国产视频一二三区| 欧美中文字幕一区二区三区亚洲| 激情av在线| 欧美激情综合亚洲一二区| 日韩欧美网址| 亚洲天堂电影网| 中文字幕一区二区三区色视频| 欧洲一级在线观看| 亚洲男人天堂久| av伊人久久| 米仓穗香在线观看| 亚洲成av人片观看| 欧美黑人粗大| 国产在线观看精品| 国产精品综合二区| 中文字幕在线一二| 亚洲午夜未满十八勿入免费观看全集| 九九亚洲精品| 偷拍盗摄高潮叫床对白清晰| 久久精品免视看| 在线观看免费版| 欧美理论电影在线播放| 极品少妇一区二区三区| 国产免费视频传媒| 欧美一区二区三区男人的天堂| 成人爽a毛片| 一区二区三区视频在线播放| 亚洲一区在线免费观看| 三上悠亚激情av一区二区三区| 国产欧美在线观看| 久久嫩草精品久久久精品| gogo在线高清视频| 成人黄色在线播放| 久久久久久国产三级电影| 水莓100在线视频| 国产日韩在线一区| 91精品国产一区二区| 日本一道高清亚洲日美韩| 日本久久久久久久久久久| 日韩精品一区二区在线视频| 日韩经典一区| 三区精品视频观看| 亚洲精品电影网| 日韩精品电影一区亚洲| 伊人久久大香| 久久久久久蜜桃一区二区| 91性高湖久久久久久久久_久久99| 国产农村妇女毛片精品久久麻豆| 久久视频在线观看| 久久精品免费一区二区| 少妇高潮 亚洲精品| 亚洲素人一区二区| av自拍一区| 成人欧美一区二区三区黑人免费| 久久国产99| 人体内射精一区二区三区| 夜夜精品视频一区二区| 久久免费电影| 亚洲自拍在线观看| 亚洲高清免费视频| 国产精品91一区二区三区| 一二三区在线| 欧美日本韩国国产| 欧美xxxx做受欧美.88| 欧美电影免费提供在线观看| 综合激情视频| 91九色成人| 特级西西人体www高清大胆| 粉嫩av亚洲一区二区图片| 91精品精品| 欧美日韩精品在线一区| 国产一区二区视频在线免费观看 | 亚洲成人1区2区| baoyu135国产精品免费| 日韩在线综合网| 在线精品播放av| 国产精品白丝jk黑袜喷水| 欧美办公室脚交xxxx| 亚洲欧洲精品在线| 欧美videos大乳护士334| 一区二区黄色| av电影免费在线观看| 欧美三日本三级少妇三99| 7777女厕盗摄久久久| 亚洲美女视频在线免费观看| 在线观看免费黄色| 日本不卡一区二区三区在线观看 | 精品国产乱子伦一区二区| 99草草国产熟女视频在线| 久久久久久com| 婷婷亚洲精品| 成人国产网站| 91丨精品丨国产| 91网在线看| 中文字幕在线免费观看| 免费国产成人看片在线| 欧美日韩一区二区精品| 久久久蜜桃一区二区人| 亚洲精品一区二区妖精| 国产精品高清乱码在线观看| 中文字幕一区二区三区最新| 亚洲成av人电影| 最新在线观看av网站| 91精品一区二区| 91福利在线看| 久久国产精品第一页| 岛国一区二区| 五月婷婷开心综合| 亚洲sss综合天堂久久| 67194成人在线观看| 国产真实乱子伦精品视频| 日本伊人久久| 中文字幕av在线| 性欧美18~19sex高清播放| 国产av国片精品| 51ⅴ精品国产91久久久久久| 91福利视频在线| 国产一区二区福利|