Apache Mina 學習筆記(1) - 入門

來源:互聯網
上載者:User
在本章,我們會讓你對什麼是MINA,什麼是非阻塞IO,為什麼我們在非阻塞IO上開發了這套架構有一個瞭解.我們也會給你展示一個非常簡單的例子去讓MINA跑起來.

1.非阻塞IO

非阻塞IO的API在JAVA 1.4版本出現,並且已經被用於數以萬計的應用當中.NIO API覆蓋了非阻塞的各種操作.在java.nio.*的包中包含了下面一些重要的結構:

Buffers - Data ContainersChartsets - Containers translators for bytes and UnicodeChannels - represents connections to entities capable of I/O operationsSelectors - provide selectable, multiplexed non-blocking IORegexps - provide provide some tools to manipulate regular expressions

在MINA架構中,我們對於Channels,_Selectors_ 和 Buffers最為感興趣,我們希望對使用者隱藏這部分.

2.NIO vs BIO

理解這兩種API之間的區別是很重要的.BIO,即阻塞IO,依賴於socket採用阻塞模式,當你讀寫或者其他任何操作socket的時候,調用者會阻塞直至該操作完成.

但是在一些實際情況中,它期待於被調用者在完成請求時能夠通知調用者,而調用者在同時可以完成其他的操作.這就是NIO.當你有很多個已串連的socket,NIO是一種更好的解決方案,你不需要為每個串連建立特定的線程,你可以僅僅只採用一些線程去做同樣的工作.如果你想要獲得更多的關於NIO的資訊,網路上有很多這方面的資料和書籍.

3.Why MINA?

寫一些網路應用程式,通常被看作是一種負擔,是一種底層的開發。是一塊開發人員不經常接觸的領域,或者曾經在學校學習過,但是已經忘記了,或者網路層的複雜性被更高層的抽象隱藏了,而你並不瞭解底層的東西。

當提到非同步IO的時候,一個額外的複雜性出現了:時間.

在BIO和NIO兩者間最大的不同就是,在BIO中,當你發送一個請求,你必須等待知道請求被回應.在服務端,意味著每當有一個串連到來時,要有一個線程被建立.所以你不得不處理多路串連的複雜性.而在NIO中,你得在一個非阻塞系統中解決同步問題,它意味著,當一些事件發生時,你不得不被捲入其中.在NIO中,你不需要等待你之前的調用,你發送一個請求,當請求完成時會通知你的.

4.The need of a framework

考慮到這些差異,以及這些問題的複雜性,最好的解決方案就是將這些複雜性隱藏起來,這就是MINA所做的.但是MINA可以做的更多,當通過TCP,UDP或者其他機制通訊的時候,它提供了一些常見的IO。如果我們只考慮TCP和UDP,MINA可以區分這兩種協議,並且讓你的注意力可以集中在你的應用程式的其他部分。

MINA不僅僅可以解決TCP和UDP問題,他對於串列通訊,ARP也很有用。

最後,MINA是一種被定製的用來解決伺服器用戶端通訊問題的網路架構,書寫一個高度可擴充的,根據需求適應的伺服器,並且讓記憶體效能得以體現,這些都是MINA所擅長的,總是它希望讓你程式開發伺服器的時候,變得輕鬆。

5.First Steps

下面我們會展示使用MINA是多麼的簡單,並且運行一個非常簡單的例子。首先,到這裡去下載MINA的最新版,除非你有足夠的理由讓你不用最新版,否則希望你能用最新版開發。http://mina.apache.org/mina-project/downloads.html。下載完畢之後,解壓所下載的檔案。目錄下面會包含一些子目錄,其中disk包含MINA庫的jar檔案,docs包含了API文檔,lib包含了MINA所需要的jar檔案。

6.運行第一MINA程式

首先,如果你在終端,需要將一下包加入classpath,修改/etc/profile,並讓他生效。如果你用Integration Environment,build your classpath就可以了。

以上就是Apache Mina 學習筆記(1) - 入門的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.