注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)行業(yè)軟件及應(yīng)用Netty進(jìn)階之路:跟著案例學(xué)Netty

Netty進(jìn)階之路:跟著案例學(xué)Netty

Netty進(jìn)階之路:跟著案例學(xué)Netty

定 價:¥79.00

作 者: 李林鋒 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121352621 出版時間: 2019-01-01 包裝: 平裝
開本: 16開 頁數(shù): 340 字?jǐn)?shù):  

內(nèi)容簡介

  Netty將Java NIO接口封裝,提供了全異步編程方式,是各大Java項(xiàng)目的網(wǎng)絡(luò)應(yīng)用開發(fā)必備神器?!禢etty進(jìn)階之路:跟著案例學(xué)Netty》作者是國內(nèi)Netty技術(shù)的先行者和布道者,本書是他繼《Netty木又威指南》之后的又一力作。 在《Netty進(jìn)階之路:跟著案例學(xué)Netty》中,作者將在過去幾年實(shí)踐中遇到的問題,以及Netty學(xué)習(xí)者咨詢的相關(guān)問題,進(jìn)行了歸納和總結(jié),以問題案例做牽引,通過對案例進(jìn)行剖析,講解問題背后的原理,并結(jié)合Netty源碼分析,讓讀者能夠真正掌握Netty,在實(shí)際工作中少犯錯。 《Netty進(jìn)階之路:跟著案例學(xué)Netty》中的案例涵蓋了Netty的啟動和停止、內(nèi)存、并發(fā)多線程、性能、可靠性、安全等方面,囊括了Netty絕大多數(shù)常用的功能及容易讓人犯錯的地方。在案例的分析過程中,還穿插講解了Netty的問題定位思路、方法、技巧,以及解決問題使用的相關(guān)工具,對讀者在實(shí)際工作中用好Netty具有很大的幫助和啟發(fā)作用。 《Netty進(jìn)階之路:跟著案例學(xué)Netty》適合架構(gòu)師、設(shè)計(jì)師、開發(fā)工程師、測試工程師,以及對Java NIO框架、Netty感興趣的其他相關(guān)人士閱讀。

作者簡介

  李林鋒 10年Java NIO通信框架、平臺中間件架構(gòu)設(shè)計(jì)和開發(fā)經(jīng)驗(yàn)。 目前在華為終端應(yīng)用市場負(fù)責(zé)業(yè)務(wù)微服務(wù)化、云化、全球化等相關(guān)設(shè)計(jì)和開發(fā)工作。 《Netty木又威指南》和《分布式服務(wù)框架原理與實(shí)踐》作者。

圖書目錄

第1章 Netty服務(wù)端意外退出案例 1
1.1 Netty服務(wù)端意外退出問題 1
1.1.1 Java Daemon線程簡介 2
1.1.2 Netty服務(wù)端啟動原理 4
1.1.3 如何防止Netty服務(wù)端意外退出 6
1.1.4 實(shí)際項(xiàng)目中的優(yōu)化策略 8
1.2 Netty優(yōu)雅退出機(jī)制 9
1.2.1 Java優(yōu)雅退出機(jī)制 10
1.2.2 Java優(yōu)雅退出的注意點(diǎn) 12
1.2.3 Netty優(yōu)雅退出機(jī)制 14
1.2.4 Netty優(yōu)雅退出原理和源碼分析 15
1.2.5 Netty優(yōu)雅退出的一些誤區(qū) 20
1.3 總結(jié) 21
第2章 Netty客戶端連接池資源泄漏案例 22
2.1 Netty連接池資源泄漏問題 22
2.1.1 連接池創(chuàng)建代碼 23
2.1.2 內(nèi)存溢出和線程膨脹 23
2.1.3 錯用NIO編程模式 25
2.1.4 正確的連接池創(chuàng)建方式 26
2.1.5 并發(fā)安全和資源釋放 28
2.2 Netty客戶端創(chuàng)建機(jī)制 29
2.2.1 Java NIO客戶端創(chuàng)建原理分析 29
2.2.2 Netty客戶端創(chuàng)建原理分析 32
2.2.3 Bootstrap工具類源碼分析 34
2.3 總結(jié) 36
第3章 Netty內(nèi)存池泄漏疑云案例 37
3.1 Netty內(nèi)存池泄漏問題 37
3.1.1 路由轉(zhuǎn)發(fā)服務(wù)代碼 38
3.1.2 響應(yīng)消息內(nèi)存釋放玄機(jī) 39
3.1.3 采集堆內(nèi)存快照分析 42
3.1.4 ByteBuf申請和釋放的理解誤區(qū) 45
3.2 Netty內(nèi)存池工作機(jī)制 48
3.2.1 內(nèi)存池的性能優(yōu)勢 48
3.2.2 內(nèi)存池工作原理分析 51
3.2.3 內(nèi)存池核心代碼分析 54
3.3 總結(jié) 58
第4章 ByteBuf故障排查案例 59
4.1 HTTP協(xié)議棧ByteBuf使用問題 59
4.1.1 HTTP響應(yīng)Body獲取異常 59
4.1.2 ByteBuf非法引用問題 63
4.1.3 ByteBuf使用注意事項(xiàng) 66
4.2 Netty ByteBuf實(shí)現(xiàn)機(jī)制 67
4.2.1 Java原生ByteBuffer的局限性 67
4.2.2 Netty ByteBuf工作原理分析 67
4.2.3 ByteBuf引用計(jì)數(shù)器工作原理和源碼分析 70
4.3 總結(jié) 73
第5章 Netty發(fā)送隊(duì)列積壓導(dǎo)致內(nèi)存泄漏案例 74
5.1 Netty發(fā)送隊(duì)列積壓案例 74
5.1.1 高并發(fā)故障場景 74
5.1.2 內(nèi)存泄漏原因分析 76
5.1.3 如何防止發(fā)送隊(duì)列積壓 78
5.1.4 其他可能導(dǎo)致發(fā)送隊(duì)列積壓的因素 80
5.2 Netty消息發(fā)送工作機(jī)制 82
5.2.1 WriteAndFlushTask原理和源碼分析 83
5.2.2 ChannelOutboundBuffer原理和源碼分析 86
5.2.3 消息發(fā)送源碼分析 88
5.2.4 消息發(fā)送高低水位控制 94
5.3 總結(jié) 95
第6章 API網(wǎng)關(guān)高并發(fā)壓測性能波動案例 96
6.1 高并發(fā)壓測性能波動問題 96
6.1.1 故障場景模擬 96
6.1.2 性能波動原因定位 98
6.1.3 主動內(nèi)存泄漏定位法 101
6.1.4 網(wǎng)關(guān)類產(chǎn)品的優(yōu)化建議 102
6.2 Netty消息接入內(nèi)存申請機(jī)制 102
6.2.1 消息接入的內(nèi)存分配原理和源碼分析 102
6.2.2 Netty ByteBuf的動態(tài)擴(kuò)容原理和源碼分析 107
6.3 總結(jié) 108
第7章 Netty ChannelHandler并發(fā)安全案例 109
7.1 Netty ChannelHandler并發(fā)安全問題 109
7.1.1 串行執(zhí)行的ChannelHandler 110
7.1.2 跨鏈路共享的ChannelHandler 114
7.1.3 ChannelHandler的并發(fā)陷阱 116
7.2 Netty ChannelHandler工作機(jī)制 118
7.2.1 職責(zé)鏈ChannelPipeline原理和源碼分析 118
7.2.2 用戶自定義Event原理和源碼分析 122
7.3 總結(jié) 123
第8章 車聯(lián)網(wǎng)服務(wù)端接收不到車載終端消息案例 124
8.1 車聯(lián)網(wǎng)服務(wù)端接收不到車載終端消息問題 124
8.1.1 故障現(xiàn)象 125
8.1.2 故障期線程堆??煺辗治?126
8.1.3 NioEventLoop線程防掛死策略 128
8.2 NioEventLoop線程工作機(jī)制 129
8.2.1 I/O讀寫操作原理和源碼分析 130
8.2.2 異步任務(wù)執(zhí)行原理和源碼分析 133
8.2.3 定時任務(wù)執(zhí)行原理和源碼分析 135
8.2.4 Netty多線程最佳實(shí)踐 137
8.3 總結(jié) 137
第9章 Netty 3.X版本升級案例 139
9.1 Netty 3.X的版本升級背景 139
9.1.1 被迫升級場景 140
9.1.2 升級不當(dāng)遭遇各種問題 140
9.2 版本升級后數(shù)據(jù)被篡改問題 141
9.2.1 數(shù)據(jù)篡改原因分析 142
9.2.2 問題總結(jié) 143
9.3 升級后上下文丟失問題 143
9.3.1 上下文丟失原因分析 144
9.3.2 依賴第三方線程模型的思考 144
9.4 升級后應(yīng)用遭遇性能下降問題 145
9.4.1 性能下降原因分析 145
9.4.2 性能優(yōu)化建議 146
9.5 Netty線程模型變更分析 147
9.5.1 Netty 3.X版本線程模型 147
9.5.2 Netty 4.X版本線程模型 149
9.5.3 線程模型變化點(diǎn)源碼分析 150
9.5.4 線程模型變化總結(jié) 152
9.6 總結(jié) 154
第10章 Netty并發(fā)失效導(dǎo)致性能下降案例 155
10.1 業(yè)務(wù)ChannelHandler無法并發(fā)執(zhí)行問題 155
10.1.1 服務(wù)端并發(fā)設(shè)計(jì)相關(guān)代碼分析 155
10.1.2 無法并行執(zhí)行的EventExecutorGroup 159
10.1.3 并行執(zhí)行優(yōu)化策略和結(jié)果 161
10.2 Netty DefaultEventExecutor工作機(jī)制 163
10.2.1 DefaultEventExecutor原理和源碼分析 164
10.2.2 業(yè)務(wù)線程池優(yōu)化策略 165
10.2.3 Netty線程綁定機(jī)制原理和源碼分析 168
10.3 總結(jié) 170
第11章 IoT百萬長連接性能調(diào)優(yōu)案例 171
11.1 海量長連接接入面臨的挑戰(zhàn) 171
11.1.1 IoT設(shè)備接入特點(diǎn) 172
11.1.2 IoT服務(wù)端性能優(yōu)化場景 172
11.1.3 服務(wù)端面臨的性能挑戰(zhàn) 172
11.2 智能家居內(nèi)存泄漏問題 173
11.2.1 服務(wù)端內(nèi)存泄漏原因定位 173
11.2.2 問題背后的一些思考 174
11.3 操作系統(tǒng)參數(shù)調(diào)優(yōu) 174
11.3.1 文件描述符 175
11.3.2 TCP/IP相關(guān)參數(shù) 175
11.3.3 多網(wǎng)卡隊(duì)列和軟中斷 177
11.4 Netty性能調(diào)優(yōu) 177
11.4.1 設(shè)置合理的線程數(shù) 177
11.4.2 心跳優(yōu)化 180
11.4.3 接收和發(fā)送緩沖區(qū)調(diào)優(yōu) 183
11.4.4 合理使用內(nèi)存池 184
11.4.5 防止I/O線程被意外阻塞 185
11.4.6 I/O線程和業(yè)務(wù)線程分離 187
11.4.7 針對端側(cè)并發(fā)連接數(shù)的流控 187
11.5 JVM相關(guān)性能優(yōu)化 189
11.5.1 GC調(diào)優(yōu) 189
11.5.2 其他優(yōu)化手段 193
11.6 總結(jié) 193
第12章 靜態(tài)檢查修改不當(dāng)引起性能下降案例 195
12.1 Edge Service性能嚴(yán)重下降問題 195
12.1.1 Edge Service熱點(diǎn)代碼分析 195
12.1.2 靜態(tài)檢查問題不是簡單的一改了之 197
12.1.3 問題反思和改進(jìn) 200
12.2 克隆和淺拷貝 201
12.2.1 淺拷貝存在的問題 201
12.2.2 Netty的對象拷貝實(shí)現(xiàn)策略 203
12.3 總結(jié) 204
第13章 Netty性能統(tǒng)計(jì)誤區(qū)案例 205
13.1 時延毛刺排查相關(guān)問題 205
13.1.1 時延毛刺問題初步分析 205
13.1.2 服務(wù)調(diào)用鏈改進(jìn) 207
13.1.3 都是同步思維惹的禍 208
13.1.4 正確的消息發(fā)送速度性能統(tǒng)計(jì)策略 209
13.1.5 常見的消息發(fā)送性能統(tǒng)計(jì)誤區(qū) 212
13.2 Netty關(guān)鍵性能指標(biāo)采集策略 212
13.2.1 Netty I/O線程池性能指標(biāo) 213
13.2.2 Netty發(fā)送隊(duì)列積壓消息數(shù) 214
13.2.3 Netty消息讀取速度性能統(tǒng)計(jì) 215
13.3 總結(jié) 215
第14章 gRPC的Netty HTTP/2實(shí)踐案例 216
14.1 gRPC基礎(chǔ)入門 216
14.1.1 RPC框架簡介 216
14.1.2 當(dāng)前主流的RPC框架 218
14.1.3 gRPC框架特點(diǎn) 218
14.1.4 為什么選擇HTTP/2 219
14.2 gRPC Netty HTTP/2服務(wù)端工作機(jī)制 220
14.2.1 Netty HTTP/2服務(wù)端創(chuàng)建原理和源碼分析 220
14.2.2 服務(wù)端接收HTTP/2請求消息原理和源碼分析 224
14.2.3 服務(wù)端發(fā)送HTTP/2響應(yīng)消息原理和源碼分析 231
14.3 gRPC Netty HTTP/2客戶端工作機(jī)制 234
14.3.1 Netty HTTP/2客戶端創(chuàng)建原理和源碼分析 235
14.3.2 客戶端發(fā)送HTTP/2請求消息原理和源碼分析 238
14.3.3 客戶端接收HTTP/2響應(yīng)消息原理和源碼分析 242
14.4 gRPC消息序列化機(jī)制 243
14.4.1 Google Protobuf簡介 243
14.4.2 消息的序列化原理和源碼分析 244
14.4.3 消息的反序列化原理和源碼分析 245
14.5 gRPC線程模型 246
14.5.1 服務(wù)端線程模型 246
14.5.2 客戶端線程模型 247
14.5.3 線程模型總結(jié) 248
14.6 總結(jié) 249
第15章 Netty事件觸發(fā)策略使用不當(dāng)案例 250
15.1 channelReadComplete方法被調(diào)用多次問題 250
15.1.1 ChannelHandler調(diào)用問題 250
15.1.2 生產(chǎn)環(huán)境問題模擬重現(xiàn) 252
15.2 ChannelHandler使用的一些誤區(qū)總結(jié) 255
15.2.1 channelReadComplete方法調(diào)用 255
15.2.2 ChannelHandler職責(zé)鏈調(diào)用 257
15.3 總結(jié) 258
第16章 Netty流量整形應(yīng)用案例 259
16.1 Netty流量整形功能 259
16.1.1 通用的流量整形功能簡介 260
16.1.2 Netty流量整形功能簡介 260
16.2 Netty流量整形應(yīng)用 261
16.2.1 流量整形示例代碼 261
16.2.2 流量整形功能測試 263
16.3 Netty流量整形工作機(jī)制 264
16.3.1 流量整形工作原理和源碼分析 264
16.3.2 并發(fā)編程在流量整形中的應(yīng)用 271
16.3.3 使用流量整形的一些注意事項(xiàng)總結(jié) 274
16.4 總結(jié) 278
第17章 Netty SSL應(yīng)用案例 279
17.1 Netty SSL功能簡介 279
17.1.1 SSL安全特性 280
17.1.2 Netty SSL實(shí)現(xiàn)機(jī)制 281
17.2 Netty客戶端SSL握手超時問題 282
17.2.1 握手超時原因定位 282
17.2.2 Netty SSL握手問題定位技巧 283
17.3 SSL握手性能問題 284
17.3.1 SSL握手性能熱點(diǎn)分析 284
17.3.2 緩存和對象池 285
17.4 SSL事件監(jiān)聽機(jī)制 286
17.4.1 握手成功事件 286
17.4.2 SSL連接關(guān)閉事件 286
17.5 總結(jié) 287
第18章 Netty HTTPS服務(wù)端高并發(fā)宕機(jī)案例 288
18.1 Netty HTTPS服務(wù)端宕機(jī)問題 288
18.1.1 客戶端大量超時 288
18.1.2 服務(wù)端內(nèi)存泄漏原因分析 289
18.1.3 NioSocketChannel泄漏原因探究 290
18.1.4 高并發(fā)場景下缺失的可靠性保護(hù) 292
18.2 功能層面的可靠性優(yōu)化 294
18.2.1 Netty HTTPS服務(wù)端可靠性優(yōu)化 295
18.2.2 HTTPS客戶端優(yōu)化 296
18.3 架構(gòu)層面的可靠性優(yōu)化 297
18.3.1 端到端架構(gòu)問題剖析 297
18.3.2 HTTP Client切換到NIO 298
18.3.3 同步RPC調(diào)用切換到異步調(diào)用 299
18.3.4 協(xié)議升級到HTTP/2 303
18.4 總結(jié) 307
第19章 MQTT服務(wù)接入超時案例 308
19.1 MQTT服務(wù)接入超時問題 308
19.1.1 生產(chǎn)環(huán)境問題現(xiàn)象 308
19.1.2 連接數(shù)膨脹原因分析 309
19.1.3 無效連接的關(guān)閉策略 309
19.1.4 問題總結(jié) 310
19.2 基于Netty的可靠性設(shè)計(jì) 311
19.2.1 業(yè)務(wù)定制I/O異常 311
19.2.2 鏈路的有效性檢測 312
19.2.3 內(nèi)存保護(hù) 313
19.3 總結(jié) 315
第20章 Netty實(shí)踐總結(jié) 316
20.1 Netty學(xué)習(xí)策略 316
20.1.1 入門知識準(zhǔn)備 316
20.1.2 Netty入門學(xué)習(xí) 319
20.1.3 項(xiàng)目實(shí)踐 319
20.1.4 Netty源碼閱讀策略 319
20.2 Netty故障定位技巧 320
20.2.1 接收不到消息 320
20.2.2 內(nèi)存泄漏 321
20.2.3 性能問題 322
20.3 總結(jié) 322

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號