Netty 源碼剖析與應用

Netty 源碼剖析與應用

作者: 劉耀林
出版社: 電子工業
出版在: 2020-11-01
ISBN-13: 9787121398537
ISBN-10: 7121398532
裝訂格式: 平裝
總頁數: 280 頁





內容描述


Netty涉及多線程技術、複雜數據結構與內存管理模型,它運用了各種設計模式及一些TCP的底層技術。
《Netty源碼剖析與應用》對這些難點一一進行攻破,讓讀者快速掌握相關知識。
《Netty源碼剖析與應用》包含大量的分佈式底層架構的編寫,涉及多線程、負載均衡算法、性能調優、線上問題緊急處理等內容。
《Netty源碼剖析與應用》通過非常簡易的代碼來講解Netty在企業中的實際用法,
通過對實例進行調試的方式對Netty源碼進行了詳細的剖析,力圖使讀者通過實際操作快速入門,
並深入了解Netty底層的各個組件。
《Netty源碼剖析與應用》適合有一定Java基礎的架構師、設計師、開發工程師、測試工程師,
以及對Java NIO框架、Netty感興趣的相關人士閱讀。


目錄大綱


目錄
第1章Netty基礎篇1
1.1 Netty概述1
1.2 Netty服務端構建2
1.3 Netty客戶端的運用6
1.3.1 Java多線程交互6
1.3.2 Netty客戶端與服務端短連接12
1.3.3 Netty客戶端與服務端長連接18
1.4小結22
第2章原理部分23
2.1多路復用器23
2.1.1 NIO與BIO的區別24
2. 1.2 epoll模型與select模型的區別25
2.2 Netty線程模型27
2.3編碼和解碼28
2.4序列化30
2.4.1 Protobuf序列化30
2.4.2 Kryo序列化31
2 .5零拷貝33
2.6背壓34
2.6.1 TCP窗口34
2.6.2 Flink實時計算引擎的背壓原理36
2.7小結39
第3章分佈式RPC 40
3.1 Netty整合Spring 41
3.2採用Netty實現一套RPC框架43
3.3分佈式RPC的構建52
3.3.1服務註冊與發現53
3.3.2動態代理68
第4章Netty核心組件源碼剖析81
4.1 NioEventLoopGroup源碼剖析82
4.2 NioEventLoop源碼剖析86
4.2.1 NioEventLoop開啟Selector 87
4.2.2 NioEventLoop的run()方法解讀89
4.2.3 NioEventLoop重新構建Selector和Channel的註冊98
4.3 Channel源碼剖析100
4.3.1 AbstractChannel源碼剖析101
4.3.2 AbstractNioChannel源碼剖析102
4.3.3 AbstractNioByteChannel源碼剖析107
4.3.4 AbstractNioMessageChannel源碼剖析112
4.3.5 NioSocketChannel源碼剖析116
4.3.6 NioServerSocketChannel源碼剖析119
4.4 Netty緩衝區ByteBuf源碼剖析120
4.4.1 AbstractByteBuf源碼剖析122
4.4.2 AbstractReferenceCountedByteBuf源碼剖析127
4. 4.3 ReferenceCountUpdater源碼剖析129
4.4.4 CompositeByteBuf源碼剖析134
4.4.5 PooledByteBuf源碼剖析145
4.5 Netty內存洩漏檢測機制源碼剖析151
4.5.1內存洩漏檢測原理152
4.5.2內存洩漏器ResourceLeakDetector源碼剖析153
4.6小結164
第5章Netty讀/寫請求源碼剖析165
5 .1 ServerBootstrap啟動過程剖析165
5.2 Netty對I/O就緒事件的處理172
5.2.1 NioEventLoop就緒處理之OP_ACCEPT 172
5.2.2 NioEventLoop就緒處理之OP_READ(一) 175
5.2.3 NioEventLoop就緒處理之OP_READ(二) 182
第6章Netty內存管理195
6.1 Netty內存管理策略介紹195
6.2 PoolChunk內存分配197
6.2.1 PoolChunk分配大於或等於8KB的內存197
6.2. 2 PoolChunk分配小於8KB的內存201
6.3 PoolSubpage內存分配與釋放205
6.4 PoolArena內存管理214
6.5 RecvByteBufAllocator內存分配計算223
6.6小結227
第7章Netty時間輪高級應用228
7.1 Netty時間輪的解讀229
7.1.1時間輪源碼剖析之初始化構建230
7.1.2時間輪源碼剖析之Worker啟動線程236
7.2 Netty時間輪改造方案製訂239
7.3時間輪高級應用之架構設計241
7.4時間輪高級應用之實戰10億級任務243
7 .5小結245
第8章問題分析與性能調優246
8.1 Netty服務在Linux服務器上的部署246
8.2 Netty服務模擬秒殺壓測255
8.3常見生產問題分析264
8.4性能調優267
8.5小結270


作者介紹


劉耀林
從2012 年到2017 年一直從事Java 後台服務開發工作,在此期間曾創辦過大像在線分享網,網名夜行俠老師,
錄製過Netty 源碼剖析視頻教學,同時在多家互聯網公司擔任過系統架構師,有豐富的Java 工作實戰經驗。
從2018 年至今轉型從事大數據研發工作,對Flink、Hbase、Kafka、Elasticsearch 等大數據組件有深入的研究。




相關書籍

Java攻略 Java常見問題的簡單解法

作者 [美]肯·寇森

2020-11-01

Functional Programming in C#, Second Edition

作者 Buonanno Enrico

2020-11-01

Spring MVC + MyBatis + Activiti工作流開發 從入門到精通

作者 李世川

2020-11-01