注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計JAVA及其相關(guān)Java高并發(fā)核心編程 卷1:NIO、Netty、Redis、ZooKeeper(加強版)

Java高并發(fā)核心編程 卷1:NIO、Netty、Redis、ZooKeeper(加強版)

Java高并發(fā)核心編程 卷1:NIO、Netty、Redis、ZooKeeper(加強版)

定 價:¥138.00

作 者: 尼恩、陳健、徐明冠、岳陽博
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302622116 出版時間: 2022-12-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  本書從操作系統(tǒng)底層的IO原理入手講解Java高并發(fā)核心編程知識,同時提供高性能開發(fā)的實戰(zhàn)案例,是一本Java高并發(fā)編程的基礎(chǔ)原理和實戰(zhàn)圖書。 本書共15章。第1~4章為高并發(fā)基礎(chǔ),淺顯易懂地剖析高并發(fā)IO的底層原理,圖文并茂地介紹Java異步回調(diào)模式,細(xì)致地講解Reactor高性能模式。這些原理方面的基礎(chǔ)知識非常重要,會為讀者打下堅實的基礎(chǔ),也是日常開發(fā)Java后臺應(yīng)用時解決實際問題的金鑰匙。第5~8章為Netty的原理和實戰(zhàn),是本書的重中之重,主要介紹高性能通信框架Netty、Netty的重要組件、單體IM的實戰(zhàn)設(shè)計和模塊實現(xiàn)。第9~12章從TCP、HTTP入手,介紹客戶端與服務(wù)端、服務(wù)端與服務(wù)端之間的高性能HTTP通信和WebSocket通信。第13~15章對ZooKeeper、Curator API、Redis、Jedis API的使用進行詳盡的說明,以提升讀者設(shè)計和開發(fā)高并發(fā)、可擴展系統(tǒng)的能力。 本書兼具基礎(chǔ)知識和實戰(zhàn)案例,既可作為對Java NIO、高性能IO、高并發(fā)編程感興趣的大專院校學(xué)生以及初、中級Java工程師的自學(xué)圖書,也可作為在生產(chǎn)項目中需要用到Netty、Redis、ZooKeeper三大框架的架構(gòu)師或項目人員的參考書。

作者簡介

  尼恩中南大學(xué)碩士,資深系統(tǒng)架構(gòu)師、IT領(lǐng)域資深作家、著名博主、從業(yè)十余年,先后在華為、神州數(shù)碼等公司從事技術(shù)研發(fā)、架構(gòu)工作。長期專注于高性能Web平臺、高性能通信、高性能搜索、數(shù)據(jù)挖掘等領(lǐng)域的3高架構(gòu)研究、架構(gòu)實操、核心代碼開發(fā)工作,以及核心中間件、底層源碼研究工作,負(fù)責(zé)過多個億級RMB智慧城市平臺、大型政務(wù)平臺、數(shù)據(jù)中臺架構(gòu)、技術(shù)中臺架構(gòu)工作,發(fā)起的3高研究社群“瘋狂創(chuàng)客圈”目前有研究人員1100多人。陳健高級Java工程師、架構(gòu)師、知識博主。擁有多年Java開發(fā)和中臺系統(tǒng)、多租戶系統(tǒng)架構(gòu)經(jīng)驗。熱衷研究開源技術(shù)和開源組件,也是多個GitHub開源項目貢獻者?,F(xiàn)為國內(nèi)上市企業(yè)資深研發(fā)工程師,負(fù)責(zé)公司底層框架的搭建和產(chǎn)品核心的架構(gòu)、研發(fā)。 徐明冠高級Java工程師、架構(gòu)師、知識博主。擁有多年大型系統(tǒng)開發(fā)經(jīng)驗,目前在支付公司擔(dān)任高級開發(fā)工程師。擅長源碼研究、解決方案制定、業(yè)務(wù)架構(gòu)、技術(shù)架構(gòu)。已完成多個支撐日百萬訪問量平臺的系統(tǒng)架構(gòu),支撐平臺穩(wěn)定運行。岳陽博高級Java工程師、架構(gòu)師、知識博主。先后在泛微、稅友從事技術(shù)Java核心研發(fā)工作,專注Java Web開發(fā),服務(wù)國內(nèi)多家Top企業(yè)及稅務(wù)機關(guān),對開發(fā)框架底層源碼有深入研究。

圖書目錄

 
第1章  高并發(fā)時代的必備技能 1
1.1  Netty為何這么火 1
1.1.1  Netty火熱的程度 1
1.1.2  Netty是面試的必殺器 2
1.2  高并發(fā)利器Redis 2
1.2.1  什么是Redis 2
1.2.2  Redis成為緩存事實標(biāo)準(zhǔn)的原因 3
1.3  分布式利器ZooKeeper 3
1.3.1  什么是ZooKeeper 3
1.3.2  ZooKeeper的優(yōu)勢 4
1.4  高性能HTTP通信技術(shù) 4
1.4.1  十萬級以上高并發(fā)場景中的高并發(fā)HTTP通信技術(shù) 4
1.4.2  微服務(wù)之間的高并發(fā)RPC技術(shù) 6
1.5  高并發(fā)IM的綜合實踐 7
1.5.1  高并發(fā)IM的學(xué)習(xí)價值 8
1.5.2  龐大的應(yīng)用場景 8
第2章  高并發(fā)IO的底層原理 9
2.1  IO讀寫的基礎(chǔ)原理 9
2.1.1  內(nèi)核緩沖區(qū)與進程緩沖區(qū) 10
2.1.2  典型IO系統(tǒng)調(diào)用sys_read和sys_write的執(zhí)行流程 10
2.2  5種主要的IO模型 13
2.2.1  同步阻塞IO 14
2.2.2  同步非阻塞IO 15
2.2.3  IO多路復(fù)用模型 16
2.2.4  信號驅(qū)動IO模型 18
2.2.5  異步IO模型 21
2.2.6  同步和異步、阻塞和非阻塞的區(qū)別與聯(lián)系 22
2.3  通過合理配置來支持百萬級并發(fā)連接 22
第3章  Java NIO核心詳解 25
3.1  Java NIO的起源 25
3.2  Java NIO簡介 28
3.2.1  NIO和OIO的對比 28
3.2.2  通道 29
3.2.3  理解Channel的抽象概念 29
3.2.4  選擇器 31
3.2.5  緩沖區(qū) 32
3.3  詳解NIO Buffer類及其屬性 33
3.3.1  Buffer類 33
3.3.2  Buffer類的重要屬性 33
3.3.3  Buffer的4個屬性總結(jié) 35
3.4  詳解NIO Buffer類的重要方法 36
3.4.1  allocate() 36
3.4.2  put() 37
3.4.3  flip() 38
3.4.4  get() 39
3.4.5  rewind() 40
3.4.6  mark()和reset() 42
3.4.7  clear() 43
3.4.8  使用Buffer類的基本步驟 44
3.5  詳解NIO Channel類 44
3.5.1  Channel的主要類型 44
3.5.2  FileChannel 44
3.5.3  使用FileChannel完成文件復(fù)制的實戰(zhàn)案例 46
3.5.4  SocketChannel 48
3.5.5  使用SocketChannel發(fā)送文件的實戰(zhàn)案例 49
3.5.6  DatagramChannel 51
3.5.7  使用DatagramChannel發(fā)送數(shù)據(jù)的實戰(zhàn)案例 53
3.6  詳解NIO Selector 54
3.6.1  選擇器以及注冊 54
3.6.2  SelectableChannel 55
3.6.3  SelectionKey 56
3.6.4  選擇器的使用流程 57
3.6.5  使用NIO實現(xiàn)Discard服務(wù)器的實戰(zhàn)案例 59
3.6.6  使用SocketChannel在服務(wù)端接收文件的實戰(zhàn)案例 61
第4章  鼎鼎大名的Reactor模式 67
4.1  Reactor模式的重要性 67
4.1.1  為什么首先學(xué)習(xí)Reactor模式 67
4.1.2  Reactor模式簡介 68
4.1.3  多線程OIO的致命缺陷 69
4.2  單線程Reactor模式 70
4.2.1  什么是單線程Reactor 70
4.2.2  單線程Reactor的參考代碼 71
4.2.3  單線程Reactor模式的EchoServer實戰(zhàn)案例 73
4.2.4  單線程Reactor模式的缺點 76
4.3  多線程Reactor模式 76
4.3.1  多線程版本的Reactor模式演進 76
4.3.2  多線程版本的Reactor實戰(zhàn)案例 77
4.3.3  多線程版本Handler的實戰(zhàn)案例 80
4.4  Reactor模式的優(yōu)缺點 82
第5章  Netty核心原理與基礎(chǔ)實戰(zhàn) 83
5.1  第一個Netty的實戰(zhàn)案例DiscardServer 83
5.1.1  創(chuàng)建第一個Netty項目 83
5.1.2  第一個Netty服務(wù)端程序 84
5.1.3  業(yè)務(wù)處理器NettyDiscardHandler 85
5.1.4  運行NettyDiscardServer 86
5.2  解密Netty的Reactor模式 87
5.2.1  回顧Reactor模式中IO事件的處理流程 87
5.2.2  Netty中的Channel 88
5.2.3  Netty中的Reactor 89
5.2.4   Netty中的Handler 90
5.2.5  Netty中的Pipeline 92
5.3  詳解Bootstrap 93
5.3.1  父子通道 93
5.3.2  EventLoopGroup 94
5.3.3  Bootstrap的啟動流程 95
5.3.4  ChannelOption 98
5.4  詳解Channel 99
5.4.1  Channel的主要成員和方法 100
5.4.2  EmbeddedChannel 101
5.5  詳解Handler 102
5.5.1  ChannelInboundHandler入站處理器 103
5.5.2  ChannelOutboundHandler出站處理器 104
5.5.3  ChannelInitializer通道初始化處理器 105
5.5.4  ChannelInboundHandler的生命周期的實戰(zhàn)案例 106
5.6  詳解Pipeline 108
5.6.1  Pipeline入站處理流程 109
5.6.2  Pipeline出站處理流程 110
5.6.3  ChannelHandlerContext 112
5.6.4  HeadContext與TailContext 112
5.6.5  Pipeline入站和出站的雙向鏈接操作 114
5.6.6  截斷流水線的入站處理傳播過程 117
5.6.7  在流水線上熱插拔Handler 119
5.7  詳解ByteBuf 121
5.7.1  ByteBuf的優(yōu)勢 121
5.7.2  ByteBuf的組成部分 121
5.7.3  ByteBuf的重要屬性 122
5.7.4  ByteBuf的方法 122
5.7.5  ByteBuf基本使用的實戰(zhàn)案例 123
5.7.6  ByteBuf的自動擴容 125
5.7.7  ByteBuf的引用計數(shù) 126
5.7.8  ByteBuf的分配器 128
5.7.9  ByteBuf緩沖區(qū)的類型 130
5.7.10  兩類ByteBuf使用的實戰(zhàn)案例 131
5.7.11  ByteBuf的自動創(chuàng)建與自動釋放 134
5.7.12  ByteBuffer的釋放原則 139
5.7.13  ByteBuf淺層復(fù)制的高級使用方式 139
5.8  Netty的零拷貝 141
5.8.1  通過CompositeByteBuf實現(xiàn)零拷貝 142
5.8.2  通過wrap操作實現(xiàn)零拷貝 144
5.8.3  ByteBuf的核心優(yōu)勢小結(jié) 145
5.9  EchoServer實戰(zhàn)案例 145
5.9.1  NettyEchoServer 145
5.9.2  共享NettyEchoServerHandler處理器 146
5.9.3  NettyEchoClient客戶端代碼 147
5.9.4  NettyEchoClientHandler 149
第6章  Decoder與Encoder核心組件 150
6.1  詳解粘包和拆包 150
6.1.1  半包問題的實戰(zhàn)案例 151
6.1.2  什么是半包問題 152
6.1.3  半包問題的根因分析 153
6.2  Decoder原理與實踐 154
6.2.1  ByteToMessageDecoder解碼器處理流程 154
6.2.2  自定義Byte2IntegerDecoder整數(shù)解碼器 155
6.2.3  ReplayingDecoder解碼器 157
6.2.4  整數(shù)的分包解碼器的實戰(zhàn)案例 158
6.2.5  字符串的分包解碼器的實戰(zhàn)案例 161
6.2.6  MessageToMessageDecoder解碼器 165
6.3  常用的內(nèi)置Decoder 166
6.3.1  LineBasedFrameDecoder解碼器 166
6.3.2  DelimiterBasedFrameDecoder解碼器 167
6.3.3  LengthFieldBasedFrameDecoder解碼器 168
6.3.4  多字段Head-Content協(xié)議數(shù)據(jù)幀解析的實戰(zhàn)案例 170
6.4  Encoder的原理與實戰(zhàn) 173
6.4.1  MessageToByteEncoder編碼器 173
6.4.2  MessageToMessageEncoder編碼器 174
6.5  解碼器和編碼器的結(jié)合 176
6.5.1  ByteToMessageCodec編解碼器 176
6.5.2  CombinedChannelDuplexHandler組合器 177
第7章  序列化與反序列化:JSON和Protobuf 178
7.1  使用JSON協(xié)議通信 179
7.1.1  JSON的核心優(yōu)勢 179
7.1.2  JSON序列化與反序列化開源庫 180
7.1.3  JSON序列化與反序列化實戰(zhàn)案例 181
7.1.4  通過Strategy模式完成不同JSON開源庫的切換 182
7.1.5  JSON傳輸?shù)木幋a器和解碼器 184
7.1.6  JSON傳輸?shù)姆?wù)端實戰(zhàn)案例 185
7.1.7  JSON傳輸?shù)目蛻舳藢崙?zhàn)案例 186
7.2  使用Protobuf協(xié)議通信 187
7.2.1  一個簡單的proto文件實戰(zhàn)案例 188
7.2.2  通過控制臺命令生成POJO和Builder 188
7.2.3  通過Maven插件生成POJO和Builder 189
7.2.4  Protobuf序列化與反序列化演示案例 190
7.3  Protobuf編解碼的實戰(zhàn)案例 192
7.3.1  Netty內(nèi)置的Protobuf基礎(chǔ)編碼器和解碼器 192
7.3.2  Protobuf傳輸?shù)姆?wù)端實戰(zhàn)案例 194
7.3.3  Protobuf傳輸?shù)目蛻舳藢崙?zhàn)案例 195
7.4  詳解Protobuf協(xié)議語法 196
7.4.1  proto文件的頭部聲明 196
7.4.2  Protobuf的消息結(jié)構(gòu)體與消息字段 198
7.4.3  Protobuf字段的數(shù)據(jù)類型 199
7.4.4  proto文件的其他語法規(guī)范 200
7.5  序列化、反序列、編碼和解碼之間的關(guān)系 201
7.5.1  序列化和反序列的本源 201
7.5.2  編碼和解碼的原理 203
第8章  Netty單體IM系統(tǒng)開發(fā)實戰(zhàn) 206
8.1  自定義Protobuf編碼器和解碼器 206
8.1.1  自定義Protobuf編碼器 207
8.1.2  自定義Protobuf解碼器 208
8.1.3  IM系統(tǒng)中Protobuf消息格式的設(shè)計 209
8.2  概述IM的登錄流程 210
8.2.1  圖解登錄/響應(yīng)流程的環(huán)節(jié) 211
8.2.2  客戶端涉及的主要模塊 211
8.2.3  服務(wù)端涉及的主要模塊 212
8.3  客戶端登錄處理實戰(zhàn)案例 212
8.3.1  LoginConsoleCommand和User POJO 213
8.3.2  LoginSender 214
8.3.3  ClientSession 217
8.3.4  LoginResponceHandler 218
8.3.5  客戶端流水線的裝配 219
8.4  服務(wù)端登錄響應(yīng)實戰(zhàn)案例 220
8.4.1  服務(wù)端流水線的裝配 221
8.4.2  LoginRequestHandler 221
8.4.3  LoginProcesser 222
8.4.4  EventLoop線程和業(yè)務(wù)線程相互隔離 224
8.5  詳解Session服務(wù)器會話 226
8.5.1  通道的容器屬性 226
8.5.2  ServerSession服務(wù)端會話類 228
8.5.3  SessionMap會話管理器 229
8.6  點對點單聊實戰(zhàn)案例 229
8.6.1  單聊的端到端流程 230
8.6.2  使用客戶端的ChatConsoleCommand收集聊天內(nèi)容 230
8.6.3  使用客戶端的CommandController發(fā)送POJO 231
8.6.4  使用服務(wù)端的ChatRedirectHandler進行消息轉(zhuǎn)發(fā) 231
8.6.5  使用服務(wù)端的ChatRedirectProcesser進行異步轉(zhuǎn)發(fā) 232
8.6.6  客戶端的ChatMsgHandler聊天消息處理器 233
8.7  詳解心跳檢測 234
8.7.1  網(wǎng)絡(luò)連接的假死現(xiàn)象 234
8.7.2  服務(wù)端的空閑檢測 234
8.7.3  客戶端的心跳發(fā)送 236
第9章  HTTP原理與Web服務(wù)器實戰(zhàn) 238
9.1  高性能Web應(yīng)用的架構(gòu) 238
9.1.1  十萬級并發(fā)的Web應(yīng)用架構(gòu) 238
9.1.2  千萬級高并發(fā)的Web應(yīng)用架構(gòu) 240
9.2  詳解HTTP應(yīng)用層協(xié)議 243
9.2.1  HTTP簡介 243
9.2.2  HTTP的請求URL 244
9.2.3  HTTP的請求報文 245
9.2.4  HTTP的響應(yīng)報文 248
9.2.5   HTTP中GET和POST的區(qū)別 250
9.3  HTTP的演進 251
9.3.1   HTTP的1.0版本 252
9.3.2  HTTP的1.1版本 254
9.3.3  HTTP的2.0版本 257
9.4  基于Netty實現(xiàn)簡單的Web服務(wù)器 259
9.4.1  基于Netty的HTTP服務(wù)器演示實例 260
9.4.2  基于Netty的HTTP請求的處理流程 261
9.4.3  Netty內(nèi)置的HTTP報文解碼流程 262
9.4.4  基于Netty的HTTP響應(yīng)編碼流程 264
9.4.5  HttpEchoHandler回顯業(yè)務(wù)處理器實戰(zhàn)案例 266
9.4.6  使用Postman發(fā)送多種類型的請求體 269
第10章  高并發(fā)HTTP通信的核心原理 273
10.1  需要進行HTTP連接復(fù)用的高并發(fā)場景 273
10.1.1  反向代理Nginx與Java Web服務(wù)之間的HTTP高并發(fā)通信 273
10.1.2  微服務(wù)網(wǎng)關(guān)與微服務(wù)Provider之間的HTTP高并發(fā)通信 274
10.1.3  微服務(wù)Provider實例之間RPC的HTTP高并發(fā)通信 275
10.1.4  Java通過HTTP客戶端訪問REST接口服務(wù)的HTTP高并發(fā)通信 275
10.2  傳輸層TCP詳解 275
10.2.1  TCP/IP的分層模型 276
10.2.2  HTTP報文傳輸原理 277
10.2.3  TCP報文格式 279
10.2.4  TCP的三次握手 283
10.2.5  TCP的四次揮手 285
10.2.6  三次握手、四次揮手的常見面試題 286
10.3  TCP連接狀態(tài)的原理與實驗 288
10.3.1  TCP/IP連接的11種狀態(tài) 288
10.3.2  通過netstat指令查看連接狀態(tài) 289
10.4  HTTP長連接的原理 291
10.4.1  HTTP長連接和短連接 291
10.4.2  不同HTTP版本中的長連接選項 292
10.5  服務(wù)端HTTP長連接技術(shù) 293
10.5.1  應(yīng)用服務(wù)器Tomcat的長連接配置 293
10.5.2  Nginx承擔(dān)服務(wù)端角色時的長連接設(shè)置 296
10.5.3  服務(wù)端長連接設(shè)置的注意事項 298
10.6  客戶端HTTP長連接技術(shù)原理與實驗 299
10.6.1  HttpURLConnection短連接技術(shù) 299
10.6.2  HTTP短連接的通信實驗 302
10.6.3  Apache HttpClient客戶端的HTTP長連接技術(shù) 304
10.6.4  Apache HttpClient客戶端長連接實驗 310
10.6.5  Nginx承擔(dān)客戶端角色時的長連接技術(shù) 313
第11章  WebSocket原理與實戰(zhàn) 315
11.1  WebSocket協(xié)議簡介 315
11.1.1  Ajax短輪詢和長輪詢的原理 315
11.1.2  WebSocket與HTTP之間的關(guān)系 316
11.2  WebSocket回顯演示程序開發(fā) 317
11.2.1  WebSocket回顯程序的客戶端代碼 317
11.2.2  WebSocket相關(guān)的Netty內(nèi)置處理類 319
11.2.3  WebSocket回顯服務(wù)器 321
11.2.4  WebSocket業(yè)務(wù)處理器 322
11.3  WebSocket協(xié)議通信的原理 324
11.3.1  抓取WebSocket協(xié)議的本機數(shù)據(jù)包 325
11.3.2  WebSocket 握手過程 325
11.3.3  WebSocket通信報文格式 328
第12章  SSL/TLS核心原理與實戰(zhàn) 331
12.1  什么是SSL/TLS 331
12.1.1  SSL/TLS協(xié)議的版本演進 331
12.1.2  SSL/TLS協(xié)議的分層結(jié)構(gòu) 333
12.2  加密算法原理與實戰(zhàn) 334
12.2.1  哈希單向加密算法原理與實戰(zhàn) 334
12.2.2  對稱加密算法原理與實戰(zhàn) 336
12.2.3  非對稱加密算法原理與實戰(zhàn) 338
12.2.4  數(shù)字簽名原理與實戰(zhàn) 341
12.3  SSL/TLS運行過程 346
12.3.1  SSL/TLS第一階段握手 346
12.3.2  SSL/TLS第二階段握手 348
12.3.3  SSL/TLS第三階段握手 351
12.3.4  SSL/TLS第四階段握手 353
12.4  詳解Keytool工具 354
12.4.1  數(shù)字證書與身份識別 354
12.4.2  存儲密鑰與證書文件格式 357
12.4.3  使用Keytool工具管理密鑰和證書 358
12.5  使用Java程序管理密鑰和證書 361
12.5.1  Java操作數(shù)據(jù)證實所涉及的核心類 361
12.5.2  使用Java程序創(chuàng)建密鑰和倉庫 362
12.5.3  使用Java程序?qū)С鲎C書文件 365
12.5.4  使用Java程序?qū)?shù)字證書導(dǎo)入信任的倉庫中 367
12.6  OIO通信中SSL/TLS實戰(zhàn) 370
12.6.1  JSSE安全套接字?jǐn)U展核心類 371
12.6.2  JSSE安全套接字的創(chuàng)建過程 373
12.6.3  OIO安全通信的Echo服務(wù)端實戰(zhàn) 374
12.6.4  OIO安全通信的Echo客戶端實戰(zhàn) 375
12.7  單向認(rèn)證與雙向認(rèn)證 376
12.7.1  SSL/TLS單向認(rèn)證 377
12.7.2  使用證書信任管理器 379
12.7.3  SSL/TLS雙向認(rèn)證 381
12.8  Netty通信中SSL/TLS的使用 385
12.8.1  Netty安全通信演示實例 385
12.8.2  Netty內(nèi)置的SSLEngine處理器詳解 386
12.8.3  Netty的簡單安全聊天器服務(wù)端程序 388
12.9  HTTPS安全通信實戰(zhàn) 391
12.9.1  使用Netty實現(xiàn)HTTPS回顯服務(wù)端程序 391
12.9.2  通過HttpsURLConnectionL發(fā)送HTTPS請求 392
12.9.3  測試:HTTPS服務(wù)端與客戶端的測試用例 393
第13章  ZooKeeper分布式協(xié)調(diào) 395
13.1   ZooKeeper偽集群安裝與配置 395
13.1.1  創(chuàng)建數(shù)據(jù)目錄和日志目錄 395
13.1.2  創(chuàng)建myid文本文件 396
13.1.3  創(chuàng)建和修改配置文件 397
13.1.4  配置文件示例 399
13.1.5  啟動ZooKeeper偽集群 400
13.2   使用ZooKeeper進行分布式存儲 401
13.2.1  詳解ZooKeeper的存儲模型 401
13.2.2  zkCli客戶端指令清單 401
13.3  ZooKeeper應(yīng)用開發(fā)實戰(zhàn) 404
13.3.1  ZkClient開源客戶端介紹 404
13.3.2  Curator開源客戶端 404
13.3.3  準(zhǔn)備Curator開發(fā)環(huán)境 405
13.3.4  創(chuàng)建Curator客戶端實例 406
13.3.5  通過Curator創(chuàng)建節(jié)點 407
13.3.6  通過Curator讀取節(jié)點 409
13.3.7  通過Curator更新節(jié)點 410
13.3.8  通過Curator刪除節(jié)點 411
13.4  分布式命名服務(wù)實戰(zhàn) 412
13.4.1  ID生成器 413
13.4.2  ZooKeeper分布式ID 生成器的實戰(zhàn)案例 414
13.4.3  集群節(jié)點的命名服務(wù)的實戰(zhàn)案例 415
13.4.4  結(jié)合ZooKeeper實現(xiàn)SnowFlake ID算法 417
13.5  分布式事件監(jiān)聽的重點 422
13.5.1  Watcher標(biāo)準(zhǔn)的事件處理器 422
13.5.2  NodeCache節(jié)點緩存的監(jiān)聽 425
13.5.3  PathCache子節(jié)點的監(jiān)聽 427
13.5.4  TreeCache節(jié)點樹的緩存 430
13.6   分布式鎖的原理與實戰(zhàn) 434
13.6.1  公平鎖和可重入鎖的原理 434
13.6.2  ZooKeeper分布式鎖的原理 435
13.6.3  分布式鎖的基本流程 436
13.6.4  加鎖的實現(xiàn) 437
13.6.5  釋放鎖的實現(xiàn) 442
13.6.6  分布式鎖的使用 443
13.6.7  Curator的InterProcessMutex可重入鎖 444
13.6.8  ZooKeeper分布式鎖的優(yōu)點和缺點 445
第14章  分布式緩存Redis實戰(zhàn) 446
14.1  Redis入門 446
14.1.1  Redis的安裝和配置 446
14.1.2  Redis客戶端命令 449
14.1.3  Redis Key的命名規(guī)范 450
14.2  Redis數(shù)據(jù)類型 451
14.2.1  String 451
14.2.2  列表 452
14.2.3  哈希 453
14.2.4  集合 454
14.2.5  有序集合 455
14.3  Jedis基礎(chǔ)編程的實戰(zhàn)案例 456
14.3.1  Jedis操作String 457
14.3.2  Jedis操作List 459
14.3.3  Jedis操作Hash 460
14.3.4  Jedis操作Set 461
14.3.5  Jedis操作ZSet 462
14.4  JedisPool連接池的實戰(zhàn)案例 464
14.4.1  JedisPool的配置 464
14.4.2  JedisPool的創(chuàng)建和預(yù)熱 466
14.4.3  JedisPool的使用 467
14.5  使用spring-data-redis完成CRUD的實戰(zhàn)案例 469
14.5.1  CRUD中應(yīng)用緩存的場景 469
14.5.2  配置spring-redis.xml 470
14.5.3  使用RedisTemplate模板API 472
14.5.4  使用RedisTemplate模板API完成CRUD的實戰(zhàn)案例 474
14.5.5  使用RedisCallback回調(diào)完成CRUD的實戰(zhàn)案例 476
14.6  Spring的Redis緩存注解 478
14.6.1  使用Spring緩存注解完成CRUD的實戰(zhàn)案例 478
14.6.2  spring-redis.xml中配置的調(diào)整 479
14.6.3  @CachePut和@Cacheable注解 481
14.6.4  詳解@CacheEvict注解 482
14.6.5  @Caching組合注解 483
14.7  詳解SpEL 484
14.7.1  SpEL運算符 484
14.7.2  緩存注解中的SpEL 487
第15章  億級高并發(fā)IM架構(gòu)與實戰(zhàn) 489
15.1   支撐億級用戶的高并發(fā)IM架構(gòu)的理論基礎(chǔ) 489
15.1.1  支撐億級用戶的系統(tǒng)架構(gòu)開發(fā)實踐 489
15.1.2  高并發(fā)架構(gòu)的技術(shù)選型 490
15.1.3  詳解IM消息的序列化協(xié)議選型 491
15.1.4  詳解長連接和短連接 491
15.2  分布式IM的命名服務(wù)的實戰(zhàn)案例 492
15.2.1  IM節(jié)點的POJO類 493
15.2.2  IM節(jié)點的ImWorker類 494
15.3   Worker集群的負(fù)載均衡的實戰(zhàn)案例 496
15.3.1  ImLoadBalance負(fù)載均衡器 497
15.3.2  與WebGate的整合 498
15.4  即時通信消息的路由和轉(zhuǎn)發(fā)的實戰(zhàn)案例 499
15.4.1  IM路由器WorkerRouter 500
15.4.2  IM轉(zhuǎn)發(fā)器PeerSender 502
15.5  分布式的在線用戶統(tǒng)計的實戰(zhàn)案例 503
15.5.1  Curator的分布式計數(shù)器 504
15.5.2  用戶上線和下線的統(tǒng)計 505

本目錄推薦

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