出版社:人民郵電出版社 ISBN:9787115453686 商品編碼:12576241838 品牌:文軒 出版時間:2017-04-01 代碼:69 作者:諾曼毛瑞爾(NormanMaurer)馬文艾
" 作 者:[美] 諾曼?毛瑞爾(Norman Maurer)馬文?艾倫?沃爾夫泰爾(Marvin Allen Wolfthal) 著 何品 譯 定 價:69 出 版 社:人民郵電出版社 出版日期:2017年04月01日 頁 數:250 裝 幀:簡裝 ISBN:9787115453686 - Netty之父”Trustin Lee作序推薦- 阿裡巴巴中間件不錯技術專家為本書中文版作序推薦- 繫統而詳細地介紹了Netty的各個方面並附帶了即用型的優質示例- 附帶行業一線公司的案例研究- 極實用的Netty技術書 無論是構建高性能的Web、遊戲服務器、推送繫統、RPC框架、消息中間件還是分布式大數據處理引擎,都離不開Netty,在整個行業中,Netty廣泛而成功的應用,使其成為了Java高性能網絡編程的卓絕框架。Netty的現Tech Lead Norman在Nett等 ●部分 Netty的概念及體繫結構 章 Netty——異步和事件驅動 31.1 Java 網絡編程 41.1.1 Java NIO 51.1.2 選擇器 61.2 Netty 簡介 61.2.1 誰在使用Netty 71.2.2 異步和事件驅動 81.3 Netty 的核心組件 91.3.1 Channel 91.3.2 回調 91.3.3 Future 101.3.4 事件和ChannelHandler 111.3.5 把它們放在一起 121.4 小結 13第2 章 你的款Netty應用程序 142.1 設置開發環境 142.1.1 獲取並安裝Java 開發工具包 142.1.2 下載並安裝IDE 152.1.3 下載和安裝Apache Maven 152.1.4 配置工具集 162.2 Netty 客戶端/服務器概覽 162.3 編寫Echo 服務器 172.3.1 ChannelHandler 和業務邏輯 172.3.2 引導服務器 182.4 編寫Echo 客戶端 212.4.1 通過ChannelHandler 實現客戶端邏輯 212.4.2 引導客戶端 222.5 構建和運行Echo 服務器和客戶端 242.5.1 運行構建 242.5.2 運行Echo 服務器和客戶端 272.6 小結 29第3 章 Netty 的組件和設計 303.1 Channel、EventLoop 和ChannelFuture 303.1.1 Channel 接口 313.1.2 EventLoop 接口 313.1.3 ChannelFuture 接口 323.2 ChannelHandler 和ChannelPipeline 323.2.1 ChannelHandler 接口 323.2.2 ChannelPipeline 接口 333.2.3 更加深入地了解ChannelHandler 343.2.4 編碼器和解碼器 353.2.5 抽像類SimpleChannelInboundHandler 353.3 引導 363.4 小結 37第4 章 傳輸 384.1 案例研究:傳輸遷移 384.1.1 不通過Netty 使用OIO和NIO 394.1.2 通過Netty 使用OIO和NIO 414.1.3 非阻塞的Netty 版本 424.2 傳輸API 434.3 內置的傳輸 454.3.1 NIO——非阻塞I/O 464.3.2 Epoll——用於Linux的本地非阻塞傳輸 474.3.3 OIO——舊的阻塞I/O 484.3.4 用於JVM 內部通信的Local 傳輸 484.3.5 Embedded 傳輸 494.4 傳輸的用例 494.5 小結 51第5 章 ByteBuf 525.1 ByteBuf 的API 525.2 ByteBuf 類——Netty的數據容器 535.2.1 它是如何工作的 535.2.2 ByteBuf 的使用模式 535.3 字節級操作 575.3.1 隨機訪問索引 575.3.2 順序訪問索引 575.3.3 可丟棄字節 585.3.4 可讀字節 585.3.5 可寫字節 595.3.6 索引管理 595.3.7 查找操作 605.3.8 派生緩衝區 605.3.9 讀/寫操作 625.3.10 更多的操作 645.4 ByteBufHolder 接口 655.5 ByteBuf 分配 655.5.1 按需分配:ByteBufAllocator 接口 655.5.2 Unpooled 緩衝區 675.5.3 ByteBufUtil 類 675.6 引用計數 675.7 小結 68第6 章 ChannelHandler 和ChannelPipeline 706.1 ChannelHandler 家族 706.1.1 Channel 的生命周期 706.1.2 ChannelHandler的生命周期 716.1.3 ChannelInboundHandler接口 716.1.4 ChannelOutboundHandler接口 736.1.5 ChannelHandler 適配器 746.1.6 資源管理 746.2 ChannelPipeline 接口 766.2.1 修改ChannelPipeline 786.2.2 觸發事件 796.3 ChannelHandlerContext接口 806.3.1 使用ChannelHandlerContext 826.3.2 ChannelHandler 和ChannelHandlerContext 的高級用法 846.4 異常處理 866.4.1 處理入站異常 866.4.2 處理出站異常 876.5 小結 88第7 章 EventLoop 和線程模型 897.1 線程模型概述 897.2 EventLoop 接口 907.2.1 Netty 4 中的I/O 和事件處理 927.2.2 Netty 3 中的I/O 操作 927.3 任務調度 937.3.1 JDK 的任務調度API 937.3.2 使用EventLoop調度任務 947.4 實現細節 957.4.1 線程管理 957.4.2 EventLoop/線程的分配 967.5 小結 98第8 章 引導 998.1 Bootstrap 類 998.2 引導客戶端和無連接協議 1018.2.1 引導客戶端 1028.2.2 Channel 和EventLoopGroup 的兼容性 1038.3 引導服務器 1048.3.1 ServerBootstrap 類 1048.3.2 引導服務器 1058.4 從Channel引導客戶端 1078.5 在引導過程中添加多個ChannelHandler 1088.6 使用Netty 的ChannelOption 和屬性 1108.7 引導DatagramChannel 1118.8 關閉 1128.9 小結 112第9 測試 1139.1 EmbeddedChannel概述 1139.2 使用EmbeddedChannel測試ChannelHandler 1159.2.1 測試入站消息 1159.2.2 測試出站消息 1189.3 測試異常處理 1199.4 小結 121第二部分 編解碼器0 章 編解碼器框架 12510.1 什麼是編解碼器 12510.2 解碼器 12510.2.1 抽像類ByteToMessageDecoder 12610.2.2 抽像類ReplayingDecoder 12710.2.3 抽像類MessageToMessageDecoder 12810.2.4 TooLongFrameException 類 13010.3 編碼器 13110.3.1 抽像類MessageToByteEncoder 13110.3.2 抽像類MessageToMessageEncoder 13210.4 抽像的編解碼器類 13310.4.1 抽像類ByteToMessageCodec 13310.4.2 抽像類MessageToMessageCodec 13410.4.3 CombinedChannelDuplexHandler 類 13710.5 小結 1381 章 預置的ChannelHandler和編解碼器 13911.1 通過SSL/TLS 保護Netty 應用程序 13911.2 構建基於Netty 的HTTP/HTTPS 應用程序 14111.2.1 HTTP 解碼器、編碼器和編解碼器 14111.2.2 聚合HTTP 消息 14311.2.3 HTTP 壓縮 14411.2.4 使用HTTPS 14511.2.5 WebSocket 14611.3 空閑的連接和超時 14811.4 解碼基於分隔符的協議和基於長度的協議 15011.4.1 基於分隔符的協議 15011.4.2 基於長度的協議 15311.5 寫大型數據 15511.6 序列化數據 1 5711.6.1 JDK 序列化 15711.6.2 使用JBoss Marshalling進行序列化 15711.6.3 通過Protocol Buffers序列化 15911.7 小結 160第三部分 網絡協議2 章 WebSocket 16312.1 WebSocket 簡介 16312.2 我們的WebSocket 示例應用程序 16412.3 添加WebSocket支持 16512.3.1 處理HTTP 請求 16512.3.2 處理WebSocket 幀 16812.3.3 初始化ChannelPipeline 16912.3.4 引導 17112.4 測試該應用程序 17312.5 小結 1763章 使用UDP 廣播事件 17713.1 UDP 的基礎知識 17713.2 UDP 廣播 17813.3 UDP 示例應用程序 17813.4 消息 POJO:LogEvent 17913.5 編寫廣播者 18013.6 編寫監視器 18513.7 運行LogEventBroadcaster 和LogEventMonitor 18713.8 小結 189第四部分 案例研究4 章 案例研究,部分 19314.1 Droplr—構建移動服務 19314.1.1 這一切的起因 19314.1.2 Droplr 是怎樣工作的 19414.1.3 創造一個更加快速的上傳體驗 19414.1.4 技術棧 19614.1.5 性能 19914.1.6 小結——站在巨人的肩膀上 20014.2 Firebase—實時的數據同步服務 20014.2.1 Firebase 的架構 20114.2.2 長輪詢 20114.2.3 HTTP 1.1 keep-alive和流水線化 20414.2.4 控制SslHandler 20514.2.5 Firebase 小結 20714.3 Urban Airship—構建移動服務 20714.3.1 移動消息的基礎知識 20714.3.2 第三方遞交 20814.3.3 使用二進制協議的例子 20914.3.4 直接面向設備的遞交 21114.3.5 Netty 擅長管理大量的並發連接 21214.3.6 Urban Airship 小結——跨越防火牆邊界 21314.4 小結 2145 章 案例研究,第二部分 21515.1 Netty 在Facebook 的使用:Nifty 和Swift 21515.1.1 什麼是Thrift 21515.1.2 使用Netty 改善Java Thrift 的現狀 21615.1.3 Nifty 服務器的設計 21715.1.4 Nifty 異步客戶端的設計 22015.1.5 Swift:一種更快的構建Java Thrift 服務的方式 22115.1.6 結果 22115.1.7 Facebook 小結 22415.2 Netty 在Twitter的使用:Finagle 22415.2.1 Twitter 成長的煩惱 22415.2.2 Finagle 的誕生 22415.2.3 Finagle 是如何工作的 22515.2.4 Finagle 的抽像 23015.2.5 故障管理 23115.2.6 組合服務 23215.2.7 未來:Netty 23215.2.8 Twitter 小結 23315.3 小結 233附錄 Maven 介紹 234 Netty實戰 是為想要或者正在使用Java 從事高性能網絡編程的人而寫的,循序漸進地介紹了Netty各個方面的內容。Netty實戰 共分為4 個部分:diyi部分詳細地介紹Netty 的相關概念以及核心組件,第二部分介紹自定義協議經常用到的編解碼器,第三部分介紹Netty 對於應用層不錯協議的支持,會覆蓋常見的協議及其在實踐中的應用,第四部分是幾個案例研究。此外,附錄部分會還簡單地介紹Maven,以及如何通過使用Maven 編譯和運行Netty實戰 中的示例。閱讀本書不需要讀者精通Java 網絡和並發編程。如果想要更加深入地理解本書背後的理念以及Netty 源碼本身,可以繫統地學習一下Java 網絡編程、NIO、並發和異步編程以及相關的設計模式。 [美] 諾曼?毛瑞爾(Norman Maurer)馬文?艾倫?沃爾夫泰爾(Marvin Allen Wolfthal) 著 何品 譯 作者簡介Norman Maurer是蘋果公司的zishen軟件工程師,同時也是Netty的核心開發人員。Marvin Allen Wolfthal是Dell Services的顧問,他使用Netty實現了多個任務關鍵型的企業繫統。譯者簡介何品,目前是淘寶的一名zishen軟件工程師,熱愛網絡、並發、異步相關的主題以及函數式編程,同時也是Netty、Akka等項目的貢獻者,活躍於Scala社區,目前也在從事GraphQL相關的開發工作。
" |