图书介绍
Netty、Redis、Zookeeper高并发实战PDF|Epub|txt|kindle电子书版本网盘下载
![Netty、Redis、Zookeeper高并发实战](https://www.shukui.net/cover/33/32444288.jpg)
- (中国)尼恩 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111632900
- 出版时间:2019
- 标注页数:361页
- 文件大小:66MB
- 文件页数:377页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
Netty、Redis、Zookeeper高并发实战PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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 DatagrarnChannel数据报通道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章 基于Netyy的单体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