-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Netty、Redis、Zookeeper高并發實戰

( 簡體 字)
作者:尼恩類別:1. -> 程式設計 -> 綜合
譯者:
出版社:機械工業出版社Netty、Redis、Zookeeper高并發實戰 3dWoo書號: 51678
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:8/15/2019
頁數:361
光碟數:0
站長推薦:
印刷:語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111632900
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

本書從操作系統底層的IO原理入手,同時提供高性能開發的實戰案例,是一本高并發Java編程應用基礎圖書。
本書共分為12章。第1~5章為高并發基礎,淺顯易懂地剖析高并發IO的底層原理,細致地講解Reactor高性能模式,圖文并茂地介紹Java異步回調模式。這些原理方面的基礎知識非常重要,會為讀者打下堅實的基礎,也是日常開發Java后臺應用時解決實際問題的金鑰匙。第6~9章為Netty原理和實戰,是本書的重中之重,主要介紹高性能通信框架Netty、Netty的重要組件、單體IM的實戰設計和模塊實現。第10~12章對ZooKeeper、Curator API、Redis、Jedis API的使用進行詳盡的說明,以提升讀者設計和開發高并發、可擴展系統的能力。
本書兼具基礎知識和實戰案例,既可作為對Java NIO、高性能IO、高并發編程感興趣的大專院校學生和初、中級Java工程師的學習參考書,也可作為在生產項目中需要用到Netty、Redis、ZooKeeper三大框架的架構師或項目人員的使用參考書。
目錄:

前言
第1章 高并發時代的必備技能1
1.1 Netty為何這么火1
1.1.1 Netty火熱的程度1
1.1.2 Netty是面試的必殺器2
1.2 高并發利器Redis2
1.2.1 什么是Redis2
1.2.2 Redis成為緩存事實標準的原因3
1.3 分布式利器ZooKeeper3
1.3.1 什么是ZooKeeper3
1.3.2 ZooKeeper的優勢4
1.4 高并發IM的綜合實踐4
1.4.1 高并發IM的學習價值4
1.4.2 龐大的應用場景5
1.5 Netty、Redis、ZooKeeper實踐計劃5
1.5.1 第1天:Java NIO實踐5
1.5.2 第2天:Reactor反應器模式實踐6
1.5.3 第3天:異步回調模式實踐7
1.5.4 第4天:Netty基礎實踐8
1.5.5 第5天:解碼器(Decoder)與編碼器(Encoder)實踐9
1.5.6 第6天:JSON和ProtoBuf序列化實踐11
1.5.7 第7~10天:基于Netty的單聊實戰12
1.5.8 第11天:ZooKeeper實踐計劃14
1.5.9 第12天:Redis實踐計劃14
1.6 本章小結16
第2章 高并發IO的底層原理17
2.1 IO讀寫的基礎原理17
2.1.1 內核緩沖區與進程緩沖區18
2.1.2 詳解典型的系統調用流程18
2.2 四種主要的IO模型19
2.2.1 同步阻塞IO(Blocking IO)20
2.2.2 同步非阻塞NIO(None Blocking IO)21
2.2.3 IO多路復用模型(IO Multiplexing)22
2.2.4 異步IO模型(Asynchronous IO)23
2.3 通過合理配置來支持百萬級并發連接24
2.4 本章小結26
第3章 Java NIO通信基礎詳解27
3.1 Java NIO簡介27
3.1.1 NIO和OIO的對比28
3.1.2 通道(Channel)28
3.1.3 Selector 選擇器28
3.1.4 緩沖區(Buffer)29
3.2 詳解NIO Buffer類及其屬性29
3.2.1 Buffer類29
3.2.2 Buffer類的重要屬性29
3.2.3 4個屬性的小結31
3.3 詳解NIO Buffer類的重要方法31
3.3.1 allocate()創建緩沖區31
3.3.2 put()寫入到緩沖區32
3.3.3 flip()翻轉33
3.3.4 get()從緩沖區讀取34
3.3.5 rewind()倒帶35
3.3.6 mark( )和reset( )37
3.3.7 clear( )清空緩沖區38
3.3.8 使用Buffer類的基本步驟38
3.4 詳解NIO Channel(通道)類38
3.4.1 Channel(通道)的主要類型39
3.4.2 FileChannel文件通道39
3.4.3 使用FileChannel完成文件復制的實踐案例41
3.4.4 SocketChannel套接字通道42
3.4.5 使用SocketChannel發送文件的實踐案例44
3.4.6 DatagramChannel數據報通道46
3.4.7 使用DatagramChannel數據包通道發送數據的實踐案例47
3.5 詳解NIO Selector選擇器49
3.5.1 選擇器以及注冊49
3.5.2 SelectableChannel可選擇通道50
3.5.3 SelectionKey選擇鍵50
3.5.4 選擇器使用流程50
3.5.5 使用NIO實現Discard服務器的實踐案例52
3.5.6 使用SocketChannel在服務器端接收文件的實踐案例54
3.6 本章小結57
第4章 鼎鼎大名的Reactor反應器模式59
4.1 Reactor反應器模式為何如此重要59
4.1.1 為什么首先學習Reactor反應器模式59
4.1.2 Reactor反應器模式簡介60
4.1.3 多線程OIO的致命缺陷60
4.2 單線程Reactor反應器模式62
4.2.1 什么是單線程Reactor反應器62
4.2.2 單線程Reactor反應器的參考代碼63
4.2.3 一個Reactor反應器版本的EchoServer實踐案例65
4.2.4 單線程Reactor反應器模式的缺點67
4.3 多線程的Reactor反應器模式68
4.3.1 多線程池Reactor反應器演進68
4.3.2 多線程Reactor 反應器的實踐案例68
4.3.3 多線程Handler處理器的實踐案例70
4.4 Reactor反應器模式小結72
4.5 本章小結73
第5章 并發基礎中的Future異步回調模式74
5.1 從泡茶的案例說起74
5.2 join異步阻塞75
5.2.1 線程的join合并流程75
5.2.2 使用join實現異步泡茶喝的實踐案例75
5.2.3 詳解join合并方法77
5.3 FutureTask異步回調之重武器77
5.3.1 Callable接口77
5.3.2 初探FutureTask類78
5.3.3 Future接口79
5.3.4 再探FutureTask類79
5.3.5 使用FutureTask類實現異步泡茶喝的實踐案例80
5.4 Guava的異步回調82
5.4.1 詳解FutureCallback82
5.4.2 詳解ListenableFuture83
5.4.3 ListenableFuture異步任務84
5.4.4 使用Guava實現泡茶喝的實踐案例84
5.5 Netty的異步回調模式87
5.5.1 詳解GenericFutureListener接口87
5.5.2 詳解Netty的Future接口88
5.5.3 ChannelFuture的使用88
5.5.4 Netty的出站和入站異步回調89
5.6 本章小結90
第6章 Netty原理與基礎91
6.1 第一個Netty的實踐案例DiscardServer91
6.1.1 創建第一個Netty項目91
6.1.2 第一個Netty服務器端程序92
6.1.3 業務處理器NettyDiscardHandler93
6.1.4 運行NettyDiscardServer94
6.2 解密Netty中的Reactor反應器模式95
6.2.1 回顧Reactor反應器模式中IO事件的處理流程95
6.2.2 Netty中的Channel通道組件96
6.2.3 Netty中的Reactor 反應器96
6.2.4 Netty中的Handler處理器97
6.2.5 Netty的流水線(Pipeline)98
6.3 詳解Bootstrap啟動器類100
6.3.1 父子通道100
6.3.2 EventLoopGroup線程組101
6.3.3 Bootstrap的啟動流程101
6.3.4 ChannelOption通道選項104
6.4 詳解Channel通道105
6.4.1 Channel通道的主要成員和方法105
6.4.2 EmbeddedChannel嵌入式通道107
6.5 詳解Handler業務處理器108
6.5.1 ChannelInboundHandler通道入站處理器109
6.5.2 ChannelOutboundHandler通道出站處理器110
6.5.3 ChannelInitializer通道初始化處理器111
6.5.4 ChannelInboundHandler的生命周期的實踐案例112
6.6 詳解Pipeline流水線115
6.6.1 Pipeline入站處理流程115
6.6.2 Pipeline出站處理流程116
6.6.3 ChannelHandlerContext上下文118
6.6.4 截斷流水線的處理118
6.6.5 Handler業務處理器的熱拔插120
6.7 詳解ByteBuf緩沖區122
6.7.1 ByteBuf的優勢122
6.7.2 ByteBuf的邏輯部分123
6.7.3 ByteBuf的重要屬性123
6.7.4 ByteBuf的三組方法124
6.7.5 ByteBuf基本使用的實踐案例125
6.7.6 ByteBuf的引用計數127
6.7.7 ByteBuf的Allocator分配器128
6.7.8 ByteBuf緩沖區的類型130
6.7.9 三類ByteBuf使用的實踐案例131
6.7.10 ByteBuf的自動釋放133
6.8 ByteBuf淺層復制的高級使用方式136
6.8.1 slice切片淺層復制136
6.8.2 duplicate整體淺層復制137
6.8.3 淺層復制的問題138
6.9 EchoServer回顯服務器的實踐案例138
6.9.1 NettyEchoServer回顯服務器的服務器端138
6.9.2 共享NettyEchoServerHandler處理器139
6.9.3 NettyEchoClient客戶端代碼140
6.9.4 NettyEchoClientHandler處理器142
6.10 本章小結143
第7章 Decoder與Encoder重要組件144
7.1 Decoder原理與實踐144
7.1.1 ByteToMessageDecoder解碼器145
7.1.2 自定義Byte2IntegerDecoder整數解碼器的實踐案例146
7.1.3 ReplayingDecoder解碼器148
7.1.4 整數的分包解碼器的實踐案例149
7.1.5 字符串的分包解碼器的實踐案例152
7.1.6 MessageToMessageDecoder解碼器156
7.2 開箱即用的Netty內置Decoder157
7.2.1 LineBasedFrameDecoder解碼器157
7.2.2 DelimiterBasedFrameDecoder解碼器158
7.2.3 LengthFieldBasedFrameDecoder解碼器159
7.2.4 多字段Head-Content協議數據幀解析的實踐案例162
7.3 Encoder原理與實踐164
7.3.1 MessageToByteEncoder編碼器165
7.3.2 MessageToMessageEncoder編碼器166
7.4 解碼器和編碼器的結合167
7.4.1 ByteToMessageCodec編解碼器168
7.4.2 CombinedChannelDuplexHandler組合器169
7.5 本章小結169
第8章 JSON和ProtoBuf序列化171
8.1 詳解粘包和拆包172
8.1.1 半包問題的實踐案例172
8.1.2 什么是半包問題174
8.1.3 半包現象的原理174
8.2 JSON協議通信175
8.2.1 JSON序列化的通用類175
8.2.2 JSON序列化與反序列化的實踐案例176
8.2.3 JSON傳輸的編碼器和解碼器之原理178
8.2.4 JSON傳輸之服務器端的實踐案例179
8.2.5 JSON傳輸之客戶端的實踐案例180
8.3 Protobuf協議通信182
8.3.1 一個簡單的proto文件的實踐案例182
8.3.2 控制臺命令生成POJO和Builder183
8.3.3 Maven插件生成POJO和Builder183
8.3.4 消息POJO和Builder的使用之實踐案例184
8.4 Protobuf編解碼的實踐案例187
8.4.1 Protobuf編碼器和解碼器的原理187
8.4.2 Protobuf傳輸之服務器端的實踐案例188
8.4.3 Protobuf傳輸之客戶端的實踐案例189
8.5 詳解Protobuf協議語法191
8.5.1 proto的頭部聲明191
8.5.2 消息結構體與消息字段192
8.5.3 字段的數據類型193
8.5.4 其他的語法規范194
8.6 本章小結195
第9章 基于Netty的單體IM系統的開發實踐196
9.1 自定義ProtoBuf編解碼器196
9.1.1 自定義Protobuf編碼器197
9.1.2 自定義Protobuf解碼器198
9.1.3 IM系統中Protobuf消息格式的設計199
9.2 概述IM的登錄流程202
9.2.1 圖解登錄/響應流程的9個環節203
9.2.2 客戶端涉及的主要模塊203
9.2.3 服務器端涉及的主要模塊204
9.3 客戶端的登錄處理的實踐案例204
9.3.1 LoginConsoleCommand和User POJO205
9.3.2 LoginSender發送器207
9.3.3 ClientSession客戶端會話209
9.3.4 LoginResponceHandler登錄響應處理器211
9.3.5 客戶端流水線的裝配212
9.4 服務器端的登錄響應的實踐案例213
9.4.1 服務器流水線的裝配214
9.4.2 LoginRequestHandler登錄請求處理器215
9.4.3 LoginProcesser用戶驗證邏輯216
9.4.4 EventLoop線程和業務線程相互隔離217
9.5 詳解ServerSession服務器會話218
9.5.1 通道的容器屬性219
9.5.2 ServerSession服務器端會話類220
9.5.3 SessionMap會話管理器222
9.6 點對點單聊的實踐案例223
9.6.1 簡述單聊的端到端流程223
9.6.2 客戶端的ChatConsoleCommand收集聊天內容224
9.6.3 客戶端的CommandController發送POJO224
9.6.4 服務器端的ChatRedirectHandler消息轉發225
9.6.5 服務器端的ChatRedirectProcesser異步處理226
9.6.6 客戶端的ChatMsgHandler接收POJO227
9.7 詳解心跳檢測228
9.7.1 網絡連接的假死現象228
9.7.2 服務器端的空閑檢測229
9.7.3 客戶端的心跳報文230
9.8 本章小結232
第10章 ZooKeeper分布式協調233
10.1 ZooKeeper偽集群安裝和配置233
10.1.1 創建數據目錄和日志目錄:234
10.1.2 創建myid文件234
10.1.3 創建和修改配置文件235
10.1.4 配置文件示例237
10.1.5 啟動ZooKeeper偽集群238
10.2 使用ZooKeeper進行分布式存儲239
10.2.1 詳解ZooKeeper存儲模型239
10.2.2 zkCli客戶端命令清單240
10.3 ZooKeeper應用開發的實踐241
10.3.1 ZkClient開源客戶端介紹242
10.3.2 Curator開源客戶端介紹242
10.3.3 Curator開發的環境準備243
10.3.4 Curator客戶端實例的創建244
10.3.5 通過Curator創建ZNode節點245
10.3.6 在Curator中讀取節點247
10.3.7 在Curator中更新節點248
10.3.8 在Curator中刪除節點249
10.4 分布式命名服務的實踐251
10.4.1 ID生成器252
10.4.2 ZooKeeper分布式ID生成器的實踐案例253
10.4.3 集群節點的命名服務之實踐案例254
10.4.4 使用ZK實現SnowFlakeID算法的實踐案例256
10.5 分布式事件監聽的重點261
10.5.1 Watcher標準的事件處理器261
10.5.2 NodeCache節點緩存的監聽265
10.5.3 PathChildrenCache子節點監聽267
10.5.4 Tree Cache節點樹緩存272
10.6 分布式鎖的原理與實踐276
10.6.1 公平鎖和可重入鎖的原理276
10.6.2 ZooKeeper分布式鎖的原理277
10.6.3 分布式鎖的基本流程279
10.6.4 加鎖的實現280
10.6.5 釋放鎖的實現285
10.6.6 分布式鎖的使用287
10.6.7 Curator的InterProcessMutex可重入鎖288
10.7 本章小結289
第11章 分布式緩存Redis290
11.1 Redis入門290
11.1.1 Redis安裝和配置290
11.1.2 Redis客戶端命令292
11.1.3 Redis Key的命名規范294
11.2 Redis數據類型295
11.2.1 String字符串295
11.2.2 List列表296
11.2.3 Hash哈希表297
11.2.4 Set集合298
11.2.5 Zset有序集合299
11.3 Jedis基礎編程的實踐案例300
11.3.1 Jedis操作String字符串301
11.3.2 Jedis操作List列表303
11.3.3 Jedis操作Hash哈希表304
11.3.4 Jedis操作Set集合305
11.3.5 Jedis操作Zset有序集合306
11.4 JedisPool連接池的實踐案例308
11.4.1 JedisPool的配置308
11.4.2 JedisPool創建和預熱310
11.4.3 JedisPool的使用312
11.5 使用spring-data-redis完成 CRUD的實踐案例313
11.5.1 CRUD中應用緩存的場景313
11.5.2 配置spring-redis.xml315
11.5.3 使用RedisTemplate模板API316
11.5.4 使用RedisTemplate模板API完成CRUD的實踐案例321
11.5.5 使用RedisCallback回調完成CRUD的實踐案例323
11.6 Spring的Redis緩存注解325
11.6.1 使用Spring緩存注解完成CRUD的實踐案例325
11.6.2 spring-redis.xml中配置的調整327
11.6.3 詳解@CachePut和 @Cacheable注解328
11.6.4 詳解@CacheEvict注解329
11.6.5 詳解@Caching組合注解330
11.7 詳解SpringEL(SpEL)331
11.7.1 SpEL運算符332
11.7.2 緩存注解中的SpringEL表達式334
11.8 本章小結336
第12章 億級高并發IM架構的開發實踐337
12.1 如何支撐億級流量的高并發IM架構的理論基礎337
12.1.1 億級流量的系統架構的開發實踐338
12.1.2 高并發架構的技術選型338
12.1.3 詳解IM消息的序列化協議選型339
12.1.4 詳解長連接和短連接339
12.2 分布式IM的命名服務的實踐案例340
12.2.1 IM節點的POJO類341
12.2.2 IM節點的ImWorker類342
12.3 Worker集群的負載均衡之實踐案例345
12.3.1 ImLoadBalance負載均衡器346
12.3.2 與WebGate的整合348
12.4 即時通信消息的路由和轉發的實踐案例349
12.4.1 IM路由器WorkerRouter349
12.4.2 IM轉發器WorkerReSender352
12.5 Feign短連接RESTful調用354
12.5.1 短連接API的接口準備355
12.5.2 聲明遠程接口的本地代理355
12.5.3 遠程API的本地調用356
12.6 分布式的在線用戶統計的實踐案例358
12.6.1 Curator的分布式計數器358
12.6.2 用戶上線和下線的統計360
12.7 本章小結361
序: