mina 筆記 基礎一

    1.mina 是什麼?html

      apach mina 是一個網絡應用框架,使開發者更容易開發出高性能可擴展的網絡應用。它經過java NIO提供了一個抽象的基於事件驅動的異步API,在例如 TCP/IP ,UDP/IP 等各類傳輸協議之上.java

     Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.web

    Apache MINA 常常被稱爲 : apache

    NIO framework library, api

    client server framework library, or網絡

    a networking socket libraryoracle

   Apache MINA 伴隨着不少子項目 :app

   Asyncweb : An HTTP server build on top of MINA asynchronous framework框架

   FtpServer : A FTP server異步

   SSHd : A Java library supporting the SSH protocol

   Vysper : An XMPP server

 

   2.使用mina以前咱們應該瞭解什麼?

    首先咱們須要瞭解是MINA在NIO 1的基礎上進行設計的(可能3.0版本會加入java 7,NIO-2 的特性吧)。那麼第一個問題來了  NIO VS BIO 

    BIO(Blocking IO) : BIO 在調用者進行socket讀寫等操做時會阻塞調用者直到調用結束。

    NIO : 採用非阻塞模式 使一個線程從某通道發送請求讀取數據,可是它僅能獲得目前可用的數據,若是目前沒有數據可用時,就什麼都不會獲取。而不是保持線程阻塞,因此直至數據變的能夠讀取以前,該線程可       以繼續作其餘的事情。 非阻塞寫也是如此。一個線程請求寫入一些數據到某通道,但不須要等待它徹底寫入,這個線程同時能夠去作別的事情。 線程一般將非阻塞IO的空閒時間用於在其它通道上執行IO操做,因此     一個單獨的線程如今能夠管理多個輸入和輸出通道(channel)。

    

    Java NIO 由如下幾個核心部分組成:

    Channels
    Buffers
    Selectors

  

               

 

   MINA 特性

   MINA is a simple yet full-featured network application framework which provides:

   Unified API for various transport types:
   TCP/IP & UDP/IP via Java NIO
   Serial communication (RS232) via RXTX
   In-VM pipe communication
   You can implement your own!
   Filter interface as an extension point; similar to Servlet filters
   Low-level and high-level API:
   Low-level: uses ByteBuffers
   High-level: uses user-defined message objects and codecs
   Highly customizable thread model:
  Single thread
  One thread pool
  More than one thread pools (i.e. SEDA)
  Out-of-the-box SSL · TLS · StartTLS support using Java 5 SSLEngine
  Overload shielding & traffic throttling
  Unit testability using mock objects
  JMX managability
 Stream-based I/O support via StreamIoHandler
 Integration with well known containers such as PicoContainer and Spring
 Smooth migration from Netty, an ancestor of Apache MINA.  

     

 3.mina 最新版本穩定版本 2.0.9 及下載地址

   http://mina.apache.org/mina-project/downloads.html

   

 

  打開源碼包,能看到官方給出的example , ok 第一步就記錄到這裏了.

 

   

   

 

 

  文章內容來源及參考 :

   http://mina.apache.org/mina-project/userguide

   http://blog.csdn.net/keda8997110/article/details/19549493   

   http://ifeve.com/overview/        Java NIO系列教程

   http://docs.oracle.com/javase/6/docs/api/

相關文章
相關標籤/搜索