返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • [正版新书] Java高并发核心编程:加强版. 卷1,NIO、Netty、Redis、ZooKeeper 尼恩 清华
  • 新商品上架
    • 作者: 尼恩著
    • 出版社: 清华大学出版社
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    句字图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 尼恩著
    • 出版社:清华大学出版社
    • 开本:16开
    • ISBN:9787302622116
    • 版权提供:清华大学出版社

     书名:  Java高并发核心编程:加强版. 卷1,NIO、Netty、Redis、ZooKeeper
     出版社:  清华大学出版社
     出版日期  2022
     ISBN号:  9787302622116

    本书从操作系统底层的IO原理入手讲解Java高并发核心编程知识,同时提供高性能开发的实战案例,是一本Java高并发编程的基础原理和实战图书。

    本书共15章。第1~4章为高并发基础,浅显易懂地剖析高并发IO的底层原理,图文并茂地介绍Java异步回调模式,细致地讲解Reactor高性能模式。这些原理方面的基础知识非常重要,会为读者打下坚实的基础,也是日常开发Java后台应用时解决实际问题的金钥匙。第5~8章为Netty的原理和实战,是本书的重中之重,主要介绍高性能通信框架Netty、Netty的重要组件、单体IM的实战设计和模块实现。第9~12章从TCP、HTTP入手,介绍客户端与服务端、服务端与服务端之间的高性能HTTP通信和WebSocket通信。第13~15章对ZooKeeper、Curator API、Redis、Jedis API的使用进行详尽的说明,以提升读者设计和开发高并发、可扩展系统的能力。

    本书兼具基础知识和实战案例,既可作为对Java NIO、高性能IO、高并发编程感兴趣的大专院校学生以及初、中级Java工程师的自学图书,也可作为在生产项目中需要用到Netty、Redis、ZooKeeper三大框架的架构师或项目人员的参考书。

    尼  恩

    中南大学硕士,资深系统架构师、IT领域资深作家、著名博主、从业十余年,先后在华为、神州数码等公司从事技术研发、架构工作。长期专注于高性能Web平台、高性能通信、高性能搜索、数据挖掘等领域的3高架构研究、架构实操、核心代码开发工作,以及核心中间件、底层源码研究工作,负责过多个亿级RMB智慧城市平台、大型政务平台、数据中台架构、技术中台架构工作,发起的3高研究社群“疯狂创客圈”目前有研究人员1100多人。


    陈  健

    高级Java工程师、架构师、知识博主。拥有多年Java开发和中台系统、多租户系统架构经验。热衷研究开源技术和开源组件,也是多个GitHub开源项目贡献者。现为国内上市企业资深研发工程师,负责公司底层框架的搭建和产品核心的架构、研发。 


    徐明冠

    高级Java工程师、架构师、知识博主。拥有多年大型系统开发经验,目前在支付公司担任高级开发工程师。擅长源码研究、解决方案制定、业务架构、技术架构。已完成多个支撑日百万访问量平台的系统架构,支撑平台稳定运行。


    岳阳博

    高级Java工程师、架构师、知识博主。先后在泛微、税友从事技术Java核心研发工作,专注Java Web开发,服务国内多家Top企业及税务机关,对开发框架底层源码有深入研究。

    深入浅出地剖析了高并发IO的底层原理。

    图文并茂地介绍了TCP、HTTP、WebSocket协议的核心原理。

    细致深入地揭秘了Reactor高性能模式。

    全面介绍了Netty框架,并完成单体IM、分布式IM的实战设计。

    详尽地介绍了ZooKeeper、Redis的使用。

    第1章  高并发时代的必备技能 1
    1.1  Netty为何这么火 1
    1.1.1  Netty火热的程度 1
    1.1.2  Netty是面试的必杀器 2
    1.2  高并发利器Redis 2
    1.2.1  什么是Redis 2
    1.2.2  Redis成为缓存事实标准的原因 3
    1.3  分布式利器ZooKeeper 3
    1.3.1  什么是ZooKeeper 3
    1.3.2  ZooKeeper的优势 4
    1.4  高性能HTTP通信技术 4
    1.4.1  十万级以上高并发场景中的高并发HTTP通信技术 4
    1.4.2  微服务之间的高并发RPC技术 6
    1.5  高并发IM的综合实践 7
    1.5.1  高并发IM的学习价值 8
    1.5.2  庞大的应用场景 8
    第2章  高并发IO的底层原理 9
    2.1  IO读写的基础原理 9
    2.1.1  内核缓冲区与进程缓冲区 10
    2.1.2  典型IO系统调用sys_read和sys_write的执行流程 10
    2.2  5种主要的IO模型 13
    2.2.1  同步阻塞IO 14
    2.2.2  同步非阻塞IO 15
    2.2.3  IO多路复用模型 16
    2.2.4  信号驱动IO模型 18
    2.2.5  异步IO模型 21
    2.2.6  同步和异步、阻塞和非阻塞的区别与联系 22
    2.3  通过合理配置来支持百万级并发连接 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  缓冲区 32
    3.3  详解NIO Buffer类及其属性 33
    3.3.1  Buffer类 33
    3.3.2  Buffer类的重要属性 33
    3.3.3  Buffer的4个属性总结 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完成文件复制的实战案例 46
    3.5.4  SocketChannel 48
    3.5.5  使用SocketChannel发送文件的实战案例 49
    3.5.6  DatagramChannel 51
    3.5.7  使用DatagramChannel发送数据的实战案例 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实现Discard服务器的实战案例 59
    3.6.6  使用SocketChannel在服务端接收文件的实战案例 61
    第4章  鼎鼎大名的Reactor模式 67
    4.1  Reactor模式的重要性 67
    4.1.1  为什么首先学习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实战案例 73
    4.2.4  单线程Reactor模式的缺点 76
    4.3  多线程Reactor模式 76
    4.3.1  多线程版本的Reactor模式演进 76
    4.3.2  多线程版本的Reactor实战案例 77
    4.3.3  多线程版本Handler的实战案例 80
    4.4  Reactor模式的优缺点 82
    第5章  Netty核心原理与基础实战 83
    5.1  第一个Netty的实战案例DiscardServer 83
    5.1.1  创建第一个Netty项目 83
    5.1.2  第一个Netty服务端程序 84
    5.1.3  业务处理器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的生命周期的实战案例 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的优势 121
    5.7.2  ByteBuf的组成部分 121
    5.7.3  ByteBuf的重要属性 122
    5.7.4  ByteBuf的方法 122
    5.7.5  ByteBuf基本使用的实战案例 123
    5.7.6  ByteBuf的自动扩容 125
    5.7.7  ByteBuf的引用计数 126
    5.7.8  ByteBuf的分配器 128
    5.7.9  ByteBuf缓冲区的类型 130
    5.7.10  两类ByteBuf使用的实战案例 131
    5.7.11  ByteBuf的自动创建与自动释放 134
    5.7.12  ByteBuffer的释放原则 139
    5.7.13  ByteBuf浅层复制的高级使用方式 139
    5.8  Netty的零拷贝 141
    5.8.1  通过CompositeByteBuf实现零拷贝 142
    5.8.2  通过wrap操作实现零拷贝 144
    5.8.3  ByteBuf的核心优势小结 145
    5.9  EchoServer实战案例 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  半包问题的实战案例 151
    6.1.2  什么是半包问题 152
    6.1.3  半包问题的根因分析 153
    6.2  Decoder原理与实践 154
    6.2.1  ByteToMessageDecoder解码器处理流程 154
    6.2.2  自定义Byte2IntegerDecoder整数解码器 155
    6.2.3  ReplayingDecoder解码器 157
    6.2.4  整数的分包解码器的实战案例 158
    6.2.5  字符串的分包解码器的实战案例 161
    6.2.6  MessageToMessageDecoder解码器 165
    6.3  常用的内置Decoder 166
    6.3.1  LineBasedFrameDecoder解码器 166
    6.3.2  DelimiterBasedFrameDecoder解码器 167
    6.3.3  LengthFieldBasedFrameDecoder解码器 168
    6.3.4  多字段Head-Content协议数据帧解析的实战案例 170
    6.4  Encoder的原理与实战 173
    6.4.1  MessageToByteEncoder编码器 173
    6.4.2  MessageToMessageEncoder编码器 174
    6.5  解码器和编码器的结合 176
    6.5.1  ByteToMessageCodec编解码器 176
    6.5.2  CombinedChannelDuplexHandler组合器 177
    第7章  序列化与反序列化:JSON和Protobuf 178
    7.1  使用JSON协议通信 179
    7.1.1  JSON的核心优势 179
    7.1.2  JSON序列化与反序列化开源库 180
    7.1.3  JSON序列化与反序列化实战案例 181
    7.1.4  通过Strategy模式完成不同JSON开源库的切换 182
    7.1.5  JSON传输的编码器和解码器 184
    7.1.6  JSON传输的服务端实战案例 185
    7.1.7  JSON传输的客户端实战案例 186
    7.2  使用Protobuf协议通信 187
    7.2.1  一个简单的proto文件实战案例 188
    7.2.2  通过控制台命令生成POJO和Builder 188
    7.2.3  通过Maven插件生成POJO和Builder 189
    7.2.4  Protobuf序列化与反序列化演示案例 190
    7.3  Protobuf编解码的实战案例 192
    7.3.1  Netty内置的Protobuf基础编码器和解码器 192
    7.3.2  Protobuf传输的服务端实战案例 194
    7.3.3  Protobuf传输的客户端实战案例 195
    7.4  详解Protobuf协议语法 196
    7.4.1  proto文件的头部声明 196
    7.4.2  Protobuf的消息结构体与消息字段 198
    7.4.3  Protobuf字段的数据类型 199
    7.4.4  proto文件的其他语法规范 200
    7.5  序列化、反序列、编码和解码之间的关系 201
    7.5.1  序列化和反序列的本源 201
    7.5.2  编码和解码的原理 203
    第8章  Netty单体IM系统开发实战 206
    8.1  自定义Protobuf编码器和解码器 206
    8.1.1  自定义Protobuf编码器 207
    8.1.2  自定义Protobuf解码器 208
    8.1.3  IM系统中Protobuf消息格式的设计 209
    8.2  概述IM的登录流程 210
    8.2.1  图解登录/响应流程的环节 211
    8.2.2  客户端涉及的主要模块 211
    8.2.3  服务端涉及的主要模块 212
    8.3  客户端登录处理实战案例 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  服务端登录响应实战案例 220
    8.4.1  服务端流水线的装配 221
    8.4.2  LoginRequestHandler 221
    8.4.3  LoginProcesser 222
    8.4.4  EventLoop线程和业务线程相互隔离 224
    8.5  详解Session服务器会话 226
    8.5.1  通道的容器属性 226
    8.5.2  ServerSession服务端会话类 228
    8.5.3  SessionMap会话管理器 229
    8.6  点对点单聊实战案例 229
    8.6.1  单聊的端到端流程 230
    8.6.2  使用客户端的ChatConsoleCommand收集聊天内容 230
    8.6.3  使用客户端的CommandController发送POJO 231
    8.6.4  使用服务端的ChatRedirectHandler进行消息转发 231
    8.6.5  使用服务端的ChatRedirectProcesser进行异步转发 232
    8.6.6  客户端的ChatMsgHandler聊天消息处理器 233
    8.7  详解心跳检测 234
    8.7.1  网络连接的假死现象 234
    8.7.2  服务端的空闲检测 234
    8.7.3  客户端的心跳发送 236
    第9章  HTTP原理与Web服务器实战 238
    9.1  高性能Web应用的架构 238
    9.1.1  十万级并发的Web应用架构 238
    9.1.2  千万级高并发的Web应用架构 240
    9.2  详解HTTP应用层协议 243
    9.2.1  HTTP简介 243
    9.2.2  HTTP的请求URL 244
    9.2.3  HTTP的请求报文 245
    9.2.4  HTTP的响应报文 248
    9.2.5   HTTP中GET和POST的区别 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实现简单的Web服务器 259
    9.4.1  基于Netty的HTTP服务器演示实例 260
    9.4.2  基于Netty的HTTP请求的处理流程 261
    9.4.3  Netty内置的HTTP报文解码流程 262
    9.4.4  基于Netty的HTTP响应编码流程 264
    9.4.5  HttpEchoHandler回显业务处理器实战案例 266
    9.4.6  使用Postman发送多种类型的请求体 269
    第10章  高并发HTTP通信的核心原理 273
    10.1  需要进行HTTP连接复用的高并发场景 273
    10.1.1  反向代理Nginx与Java Web服务之间的HTTP高并发通信 273
    10.1.2  微服务网关与微服务Provider之间的HTTP高并发通信 274
    10.1.3  微服务Provider实例之间RPC的HTTP高并发通信 275
    10.1.4  Java通过HTTP客户端访问REST接口服务的HTTP高并发通信 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连接状态的原理与实验 288
    10.3.1  TCP/IP连接的11种状态 288
    10.3.2  通过netstat指令查看连接状态 289
    10.4  HTTP长连接的原理 291
    10.4.1  HTTP长连接和短连接 291
    10.4.2  不同HTTP版本中的长连接选项 292
    10.5  服务端HTTP长连接技术 293
    10.5.1  应用服务器Tomcat的长连接配置 293
    10.5.2  Nginx承担服务端角色时的长连接设置 296
    10.5.3  服务端长连接设置的注意事项 298
    10.6  客户端HTTP长连接技术原理与实验 299
    10.6.1  HttpURLConnection短连接技术 299
    10.6.2  HTTP短连接的通信实验 302
    10.6.3  Apache HttpClient客户端的HTTP长连接技术 304
    10.6.4  Apache HttpClient客户端长连接实验 310
    10.6.5  Nginx承担客户端角色时的长连接技术 313
    第11章  WebSocket原理与实战 315
    11.1  WebSocket协议简介 315
    11.1.1  Ajax短轮询和长轮询的原理 315
    11.1.2  WebSocket与HTTP之间的关系 316
    11.2  WebSocket回显演示程序开发 317
    11.2.1  WebSocket回显程序的客户端代码 317
    11.2.2  WebSocket相关的Netty内置处理类 319
    11.2.3  WebSocket回显服务器 321
    11.2.4  WebSocket业务处理器 322
    11.3  WebSocket协议通信的原理 324
    11.3.1  抓取WebSocket协议的本机数据包 325
    11.3.2  WebSocket 握手过程 325
    11.3.3  WebSocket通信报文格式 328
    第12章  SSL/TLS核心原理与实战 331
    12.1  什么是SSL/TLS 331
    12.1.1  SSL/TLS协议的版本演进 331
    12.1.2  SSL/TLS协议的分层结构 333
    12.2  加密算法原理与实战 334
    12.2.1  哈希单向加密算法原理与实战 334
    12.2.2  对称加密算法原理与实战 336
    12.2.3  非对称加密算法原理与实战 338
    12.2.4  数字签名原理与实战 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  数字证书与身份识别 354
    12.4.2  存储密钥与证书文件格式 357
    12.4.3  使用Keytool工具管理密钥和证书 358
    12.5  使用Java程序管理密钥和证书 361
    12.5.1  Java操作数据证实所涉及的核心类 361
    12.5.2  使用Java程序创建密钥和仓库 362
    12.5.3  使用Java程序导出证书文件 365
    12.5.4  使用Java程序将数字证书导入信任的仓库中 367
    12.6  OIO通信中SSL/TLS实战 370
    12.6.1  JSSE安全套接字扩展核心类 371
    12.6.2  JSSE安全套接字的创建过程 373
    12.6.3  OIO安全通信的Echo服务端实战 374
    12.6.4  OIO安全通信的Echo客户端实战 375
    12.7  单向认证与双向认证 376
    12.7.1  SSL/TLS单向认证 377
    12.7.2  使用证书信任管理器 379
    12.7.3  SSL/TLS双向认证 381
    12.8  Netty通信中SSL/TLS的使用 385
    12.8.1  Netty安全通信演示实例 385
    12.8.2  Netty内置的SSLEngine处理器详解 386
    12.8.3  Netty的简单安全聊天器服务端程序 388
    12.9  HTTPS安全通信实战 391
    12.9.1  使用Netty实现HTTPS回显服务端程序 391
    12.9.2  通过HttpsURLConnectionL发送HTTPS请求 392
    12.9.3  测试:HTTPS服务端与客户端的测试用例 393
    第13章  ZooKeeper分布式协调 395
    13.1   ZooKeeper伪集群安装与配置 395
    13.1.1  创建数据目录和日志目录 395
    13.1.2  创建myid文本文件 396
    13.1.3  创建和修改配置文件 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应用开发实战 404
    13.3.1  ZkClient开源客户端介绍 404
    13.3.2  Curator开源客户端 404
    13.3.3  准备Curator开发环境 405
    13.3.4  创建Curator客户端实例 406
    13.3.5  通过Curator创建节点 407
    13.3.6  通过Curator读取节点 409
    13.3.7  通过Curator更新节点 410
    13.3.8  通过Curator删除节点 411
    13.4  分布式命名服务实战 412
    13.4.1  ID生成器 413
    13.4.2  ZooKeeper分布式ID 生成器的实战案例 414
    13.4.3  集群节点的命名服务的实战案例 415
    13.4.4  结合ZooKeeper实现SnowFlake ID算法 417
    13.5  分布式事件监听的重点 422
    13.5.1  Watcher标准的事件处理器 422
    13.5.2  NodeCache节点缓存的监听 425
    13.5.3  PathCache子节点的监听 427
    13.5.4  TreeCache节点树的缓存 430
    13.6   分布式锁的原理与实战 434
    13.6.1  公平锁和可重入锁的原理 434
    13.6.2  ZooKeeper分布式锁的原理 435
    13.6.3  分布式锁的基本流程 436
    13.6.4  加锁的实现 437
    13.6.5  释放锁的实现 442
    13.6.6  分布式锁的使用 443
    13.6.7  Curator的InterProcessMutex可重入锁 444
    13.6.8  ZooKeeper分布式锁的优点和缺点 445
    第14章  分布式缓存Redis实战 446
    14.1  Redis入门 446
    14.1.1  Redis的安装和配置 446
    14.1.2  Redis客户端命令 449
    14.1.3  Redis Key的命名规范 450
    14.2  Redis数据类型 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基础编程的实战案例 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连接池的实战案例 464
    14.4.1  JedisPool的配置 464
    14.4.2  JedisPool的创建和预热 466
    14.4.3  JedisPool的使用 467
    14.5  使用spring-data-redis完成CRUD的实战案例 469
    14.5.1  CRUD中应用缓存的场景 469
    14.5.2  配置spring-redis.xml 470
    14.5.3  使用RedisTemplate模板API 472
    14.5.4  使用RedisTemplate模板API完成CRUD的实战案例 474
    14.5.5  使用RedisCallback回调完成CRUD的实战案例 476
    14.6  Spring的Redis缓存注解 478
    14.6.1  使用Spring缓存注解完成CRUD的实战案例 478
    14.6.2  spring-redis.xml中配置的调整 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章  亿级高并发IM架构与实战 489
    15.1   支撑亿级用户的高并发IM架构的理论基础 489
    15.1.1  支撑亿级用户的系统架构开发实践 489
    15.1.2  高并发架构的技术选型 490
    15.1.3  详解IM消息的序列化协议选型 491
    15.1.4  详解长连接和短连接 491
    15.2  分布式IM的命名服务的实战案例 492
    15.2.1  IM节点的POJO类 493
    15.2.2  IM节点的ImWorker类 494
    15.3   Worker集群的负载均衡的实战案例 496
    15.3.1  ImLoadBalance负载均衡器 497
    15.3.2  与WebGate的整合 498
    15.4  即时通信消息的路由和转发的实战案例 499
    15.4.1  IM路由器WorkerRouter 500
    15.4.2  IM转发器PeerSender 502
    15.5  分布式的在线用户统计的实战案例 503
    15.5.1  Curator的分布式计数器 504
    15.5.2  用户上线和下线的统计 505

    5G时代、物联网时代的大幕已经开启,新时代提升了对Java应用的高性能、高并发的要求,也抬高了Java工程师的技术台阶和面试门槛。
    很多公司的面试题从某个侧面反映了生产场景的技术要求。之前只有BAT等大公司才有高并发技术相关的面试题,现在与Java项目相关的整个行业基本都涉及此类面试题。本书着重介绍Java NIO、Reactor模式、高性能通信框架Netty、ZooKeeper分布式锁、分布式ID、Redis分布式缓存、分布式IM方面的内容,以帮助读者快速掌握Java高并发的底层通信知识和分布式架构知识。
    本书内容
    本书是三卷本《Java高并发核心编程》的第1卷,旨在帮助读者掌握Netty、Redis、ZooKeeper、TCP、HTTP、分布式IM的原理,为读者打下Java高并发技术的知识基础。
    第1~4章从操作系统的底层原理开始,浅显易懂地揭秘高并发IO的底层原理,并介绍如何让单体Java应用支持百万级的高并发,从传统的阻塞式OIO开始,细致地解析Reactor高性能模式,介绍高性能网络开发的基础知识。这些非常底层的原理知识和基础知识非常重要,是开发过程中解决Java实际问题必不可少的。
    第5~8章重点讲解Netty。目前Netty是高性能通信框架皇冠上当之无愧的明珠,是支撑其他众多著名的高并发、分布式、大数据框架底层的框架。这几章从Reactor模式入手,以“四两拨千斤”的方式为读者介绍Netty的原理。同时,还将介绍如何通过Netty来解决网络编程中的重点难题,如Protobuf序列化问题、半包问题等。
    第9~12章从TCP、HTTP入手,介绍客户端与服务端、服务端与服务端之间的高性能HTTP通信和WebSocket通信。这几章深入浅出地介绍TCP、HTTP、WebSocket三大常用的协议,以及如何基于Netty实现HTTP、WebSocket高性能通信。
    第13章对ZooKeeper进行详细的介绍。除了全面地介绍Curator API之外,还从实战的角度出发介绍如何使用ZooKeeper设计分布式ID生成器,并详细介绍重要的SnowFlake算法。另外,还结合小故事以图文并茂的方式浅显易懂地介绍分布式锁的基本原理。
    第14章从实战开发层面对Redis进行介绍,详细介绍Redis的5种数据类型、客户端操作指令、Jedis Java API。另外,还通过spring-data-redis来完成数据分布式缓存的实战案例,详尽地介绍Spring的缓存注解以及涉及的SpEL。
    第15章通过CrazyIM项目为读者介绍一个亿级流量的高并发IM系统模型,这个高并发架构的系统模型不仅限于IM系统,通过简单的调整和适配就可以应用于当前主流的Java后台系统。

    读者对象
    ? 对Java NIO、高性能IO、高并发编程感兴趣的大专院校学生。
    ? 需要学习Java高并发技术和高并发架构的初、中级Java工程师。
    ? 生产项目中需要用到Netty、Redis、ZooKeeper三大框架的架构师或者项目人员。
    本书源代码下载
    本书的源代码可以扫描以下二维码下载:

    若下载有问题,请发送电子邮件至booksaga@126.com,邮件主题为“Java高并发核心编程 卷1(加强版)下载资源”。
    勘误和支持
    由于作者水平和能力有限,不妥之处在所难免,希望读者批评指正。
    致  谢
    感谢疯狂创客圈社群中的小伙伴们,他们中有很多非常有前途的技术狂人,他们对Java高并发技术的狂热喜爱让笔者惊叹不已。技术狂人们也获得了丰厚的回报,比如专科毕业的第76号、第453号技术狂人,已经顺利走向技术自由,成为P7级以上的技术专家,尤其是第76号卷王,两年之内薪资涨3倍,可喜可贺。
    欢迎读者进入疯狂创客圈社群积极“砸”问题,虽然有的技术难题笔者不一定能给出最佳的解决方案,但坦诚、纯粹的技术交流能够相互启发,产生技术灵感,拓展技术视野,并最终提升技术水平。

    尼  恩
    2022年11月

     

    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购