摘要:異步和事件驅動是一款異步的事件驅動的網絡應用程序框架,支持快速地開發可維護的高性能的面向協議的服務器和客戶端。由提供的通知機制消除了手動檢查對應的操作是否完成的必要。事件和使用不同的事件來通知我們狀態的改變或者是操作的狀態。
異步和事件驅動
?Netty是一款異步的事件驅動的網絡應用程序框架,支持快速地開發可維護的高性能的面向協議的服務器和客戶端。
Netty簡介分類 | Netty特性 |
---|---|
設計 | 統一的API,支持多種傳輸類型,阻塞的和非阻塞的 簡單強的的線程模型 真正的無連接數據報套接字支持 鏈接邏輯組件以支持復用 |
易用使用 | 詳實的Javadoc和大量的事例集 不需要超過JDK1.6+的依賴 |
性能 | 擁有比Java的核心API更高的吞吐量以及更低的延遲 得益于池化和復用,擁有更低的資源消耗 最少的內存復制 |
健壯性 | 不會因為慢速、快速或者超載的連接而導致OutOfMemoryError 消除在高速網絡中NIO應用程序常見的不公平讀/寫比率 |
安全性 | 完整的SSL/TLS以及StartTLS支持 可用于受限環境下,如Applet和OSGI |
社區驅動 | 發布快速而且頻繁 |
Netty主要構件塊:
Channel
回調
Future
事件和ChannelHandler
Channel?它代表一個實體(如一個硬件設備、一個文件、一個網絡套接字或者一個能夠執行一個或者多個不同的I/O操作的程序組件)的開放連接,如讀操作和寫操作。
?Channel可以看作是傳入(入站)或傳出(出站)數據的載體,它可以被打開或者被關閉,連接或者斷開連接。
?一個回調其實就是一個方法,一個指向已經被提供給另外一個方法的方法的引用,這個可以使得后者可以在適當的時候調用前者。
?例如:ChannelHandler中的channelActive()回掉方法會在當一個新的連接已經被建立時將會被調用。
?Future提供了另一種在操作完成時通知應用程序的方式。這個對象可以看作是一個異步操作的結果的占位符,它將在未來的某個時刻完成,并提供對其結果的訪問。
? JDK內置了java.util.cocurrent.Future,但是其所提供的實現,只允許手動檢查對應的操作是否已經完成,或者一直阻塞直到它完成。
?Netty提供了自己的實現——ChannelFuture.
?ChannelFuture提供了幾種額外的方法,這些方法使得我們能夠注冊一個或者多個ChannelListener實例。監聽器的回調方法operationComplete()將會在對應的操作完成時被調用。然后監聽器可以判斷該操作是成功完成還是出錯,如果是后者,我們還可以檢索產生的Throwable。
?由ChannelFutureListener提供的通知機制消除了手動檢查對應的操作是否完成的必要。
?每個Netty的出站I/O操作都將返回一個ChannelFuture,也就是說,它們都不會阻塞。
?Netty使用不同的事件來通知我們狀態的改變或者是操作的狀態。這使得我們能夠基于已經發生的事件來觸發適當的動作,如:
記錄日志
數據轉換
流控制
應用程序邏輯
?Netty是一個編程網絡框架,所以事件是按照它們入站或出站數據流的相關性進行分類的。
?可能由入站數據或者相關狀態更改而觸發的事件包括:
連接已被激活或者連接失活
數據讀取
用戶事件
錯誤事件
?出站事件是未來將會觸發的某個動作的操作結果,包括:
打開或者關閉到遠程節點的連接
將數據寫到或者沖刷到套接字
每個事件都可以被分發給ChannelHandler類中的某個用戶實現的方法。
?Netty提供了大量預定義的開箱急用的ChannelHandler實現,包括用于各種協議(如HTTP和SSL/TLS)的ChannelHandler。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69237.html
摘要:提供異步的事件驅動的網絡應用程序框架和工具,用以快速開發高性能高可靠性的網絡服務器和客戶端程序。總結我們完成了服務端的簡單搭建,模擬了聊天會話場景。 之前一直在搞前端的東西,都快忘了自己是個java開發。其實還有好多java方面的東西沒搞過,突然了解到netty,覺得有必要學一學。 介紹 Netty是由JBOSS提供的一個java開源框架。Netty提供異步的、事件驅動的網絡應用程序框...
摘要:它使用了事件通知以確定在一組非阻塞套接字中有哪些已經就緒能夠進行相關的操作。目前,可以把看作是傳入入站或者傳出出站數據的載體。出站事件是未來將會觸發的某個動作的操作結果,這些動作包括打開或者關閉到遠程節點的連接將數據寫到或者沖刷到套接字。 netty的概念 定義 Netty 是一款異步的事件驅動的網絡應用程序框架,支持快速地開發可維護的高性能的面向協議的服務器和客戶端。我們可以很簡單的...
摘要:豐富的緩存數據結構使用它自己的緩存來表示字節序列而不是的。針對有一個定義良好的事件模型。有一些協議是多層的建立在其他低級協議基礎上。此外,甚至不是完全線程安全的。協議由標準化為。協議緩存整合是一個高效二進制協議的快速實現。 Chapter 2、結構概覽 這一節我們將確認Netty提供的核心功能是什么,以及它們怎么構成一個完整的網絡應用開發堆棧。 1、豐富的緩存數據結構 Netty使用它...
摘要:后端好書閱讀與推薦系列文章后端好書閱讀與推薦后端好書閱讀與推薦續后端好書閱讀與推薦續二后端好書閱讀與推薦續三這里依然記錄一下每本書的亮點與自己讀書心得和體會,分享并求拍磚。然后又請求封鎖,當釋放了上的封鎖之后,系統又批準了的請求一直等待。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續)后端好書閱讀與推薦(續二)后端好書閱讀與推薦(續三) 這里依然記錄一下每本書的...
閱讀 2117·2023-04-26 00:50
閱讀 2488·2021-10-13 09:39
閱讀 2221·2021-09-22 15:34
閱讀 1613·2021-09-04 16:41
閱讀 1343·2019-08-30 15:55
閱讀 2441·2019-08-30 15:53
閱讀 1714·2019-08-30 15:52
閱讀 754·2019-08-29 16:19