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

Netty進階之路:跟著案例學Netty

Netty進階之路:跟著案例學Netty

定 價:¥79.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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