Netty源码剖析与应用

Netty源码剖析与应用
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2020-11
版次: 1
ISBN: 9787121398537
定价: 89.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 280页
字数: 308千字
  • Netty涉及多线程技术、复杂数据结构与内存管理模型,它运用了各种设计模式及一些TCP的底层技术。本书对这些难点一一进行攻破,让读者快速掌握相关知识。本书包含大量的分布式底层架构的编写,涉及多线程、负载均衡算法、性能调优、线上问题紧急处理等内容。本书通过非常简易的代码来讲解Netty在企业中的实际用法,通过对实例进行调试的方式对Netty源码进行了详细的剖析,力图使读者通过实际操作快速入门,并深入了解Netty底层的各个组件。本书适合有一定Java基础的架构师、设计师、开发工程师、测试工程师,以及对Java NIO框架、Netty感兴趣的相关人士阅读。 刘耀林,从2012 年到2017 年一直从事Java 后台服务开发工作,在此期间曾创办过大象在线分享网,网名夜行侠老师,录制过Netty 源码剖析视频教学,同时在多家互联网公司担任过系统架构师,有丰富的Java 工作实战经验。从2018 年至今转型从事大数据研发工作,对Flink、Hbase、Kafka、Elasticsearch 等大数据组件有深入的研究。 第1章 Netty基础篇 1 

    1.1 Netty概述 1 

    1.2 Netty服务端构建 2 

    1.3 Netty客户端的运用 6 

    1.3.1 Java多线程交互 6 

    1.3.2 Netty客户端与服务端短连接 12 

    1.3.3 Netty客户端与服务端长连接 18 

    1.4 小结 22 

    第2章 原理部分 23 

    2.1 多路复用器 23 

    2.1.1 NIO与BIO的区别 24 

    2.1.2 epoll模型与select模型的区别 25 

    2.2 Netty线程模型 27 

    2.3 编码和解码 28 

    2.4 序列化 30 

    2.4.1 Protobuf序列化 30 

    2.4.2 Kryo序列化 31 

    2.5 零拷贝 33 

    2.6 背压 34 

    2.6.1 TCP窗口 34 

    2.6.2 Flink实时计算引擎的背压原理 36 

    2.7 小结 39 

    第3章 分布式RPC 40 

    3.1 Netty整合Spring 41 

    3.2 采用Netty实现一套RPC框架 43 

    3.3 分布式RPC的构建 52 

    3.3.1 服务注册与发现 53 

    3.3.2 动态代理 68 

    第4章 Netty核心组件源码剖析 81 

    4.1 NioEventLoopGroup源码剖析 82 

    4.2 NioEventLoop源码剖析 86 

    4.2.1 NioEventLoop开启Selector 87 

    4.2.2 NioEventLoop的run()方法解读 89 

    4.2.3 NioEventLoop 重新构建Selector和Channel的注册 98 

    4.3 Channel源码剖析 100 

    4.3.1 AbstractChannel源码剖析 101 

    4.3.2 AbstractNioChannel源码剖析 102 

    4.3.3 AbstractNioByteChannel源码剖析 107 

    4.3.4 AbstractNioMessageChannel源码剖析 112 

    4.3.5 NioSocketChannel源码剖析 116 

    4.3.6 NioServerSocketChannel源码剖析 119 

    4.4 Netty缓冲区ByteBuf源码剖析 120 

    4.4.1 AbstractByteBuf源码剖析 122 

    4.4.2 AbstractReferenceCountedByteBuf源码剖析 127 

    4.4.3 ReferenceCountUpdater源码剖析 129 

    4.4.4 CompositeByteBuf源码剖析 134 

    4.4.5 PooledByteBuf源码剖析 145 

    4.5 Netty内存泄漏检测机制源码剖析 151 

    4.5.1 内存泄漏检测原理 152 

    4.5.2 内存泄漏器ResourceLeakDetector源码剖析 153 

    4.6 小结 164 

    第5章 Netty读/写请求源码剖析 165 

    5.1 ServerBootstrap启动过程剖析 165 

    5.2 Netty对I/O就绪事件的处理 172 

    5.2.1 NioEventLoop就绪处理之OP_ACCEPT 172 

    5.2.2 NioEventLoop就绪处理之OP_READ(一) 175 

    5.2.3 NioEventLoop就绪处理之OP_READ(二) 182 

    第6章 Netty内存管理 195 

    6.1 Netty内存管理策略介绍 195 

    6.2 PoolChunk内存分配 197 

    6.2.1 PoolChunk分配大于或等于8KB的内存 197 

    6.2.2 PoolChunk分配小于8KB的内存 201 

    6.3 PoolSubpage内存分配与释放 205 

    6.4 PoolArena内存管理 214 

    6.5 RecvByteBufAllocator内存分配计算 223 

    6.6 小结 227 

    第7章 Netty时间轮高级应用 228 

    7.1 Netty时间轮的解读 229 

    7.1.1 时间轮源码剖析之初始化构建 230 

    7.1.2 时间轮源码剖析之Worker启动线程 236 

    7.2 Netty时间轮改造方案制订 239 

    7.3 时间轮高级应用之架构设计 241 

    7.4 时间轮高级应用之实战10亿级任务 243 

    7.5 小结 245 

    第8章 问题分析与性能调优 246 

    8.1 Netty服务在Linux服务器上的部署 246 

    8.2 Netty服务模拟秒杀压测 255 

    8.3 常见生产问题分析 264 

    8.4 性能调优 267 

    8.5 小结 270
  • 内容简介:
    Netty涉及多线程技术、复杂数据结构与内存管理模型,它运用了各种设计模式及一些TCP的底层技术。本书对这些难点一一进行攻破,让读者快速掌握相关知识。本书包含大量的分布式底层架构的编写,涉及多线程、负载均衡算法、性能调优、线上问题紧急处理等内容。本书通过非常简易的代码来讲解Netty在企业中的实际用法,通过对实例进行调试的方式对Netty源码进行了详细的剖析,力图使读者通过实际操作快速入门,并深入了解Netty底层的各个组件。本书适合有一定Java基础的架构师、设计师、开发工程师、测试工程师,以及对Java NIO框架、Netty感兴趣的相关人士阅读。
  • 作者简介:
    刘耀林,从2012 年到2017 年一直从事Java 后台服务开发工作,在此期间曾创办过大象在线分享网,网名夜行侠老师,录制过Netty 源码剖析视频教学,同时在多家互联网公司担任过系统架构师,有丰富的Java 工作实战经验。从2018 年至今转型从事大数据研发工作,对Flink、Hbase、Kafka、Elasticsearch 等大数据组件有深入的研究。
  • 目录:
    第1章 Netty基础篇 1 

    1.1 Netty概述 1 

    1.2 Netty服务端构建 2 

    1.3 Netty客户端的运用 6 

    1.3.1 Java多线程交互 6 

    1.3.2 Netty客户端与服务端短连接 12 

    1.3.3 Netty客户端与服务端长连接 18 

    1.4 小结 22 

    第2章 原理部分 23 

    2.1 多路复用器 23 

    2.1.1 NIO与BIO的区别 24 

    2.1.2 epoll模型与select模型的区别 25 

    2.2 Netty线程模型 27 

    2.3 编码和解码 28 

    2.4 序列化 30 

    2.4.1 Protobuf序列化 30 

    2.4.2 Kryo序列化 31 

    2.5 零拷贝 33 

    2.6 背压 34 

    2.6.1 TCP窗口 34 

    2.6.2 Flink实时计算引擎的背压原理 36 

    2.7 小结 39 

    第3章 分布式RPC 40 

    3.1 Netty整合Spring 41 

    3.2 采用Netty实现一套RPC框架 43 

    3.3 分布式RPC的构建 52 

    3.3.1 服务注册与发现 53 

    3.3.2 动态代理 68 

    第4章 Netty核心组件源码剖析 81 

    4.1 NioEventLoopGroup源码剖析 82 

    4.2 NioEventLoop源码剖析 86 

    4.2.1 NioEventLoop开启Selector 87 

    4.2.2 NioEventLoop的run()方法解读 89 

    4.2.3 NioEventLoop 重新构建Selector和Channel的注册 98 

    4.3 Channel源码剖析 100 

    4.3.1 AbstractChannel源码剖析 101 

    4.3.2 AbstractNioChannel源码剖析 102 

    4.3.3 AbstractNioByteChannel源码剖析 107 

    4.3.4 AbstractNioMessageChannel源码剖析 112 

    4.3.5 NioSocketChannel源码剖析 116 

    4.3.6 NioServerSocketChannel源码剖析 119 

    4.4 Netty缓冲区ByteBuf源码剖析 120 

    4.4.1 AbstractByteBuf源码剖析 122 

    4.4.2 AbstractReferenceCountedByteBuf源码剖析 127 

    4.4.3 ReferenceCountUpdater源码剖析 129 

    4.4.4 CompositeByteBuf源码剖析 134 

    4.4.5 PooledByteBuf源码剖析 145 

    4.5 Netty内存泄漏检测机制源码剖析 151 

    4.5.1 内存泄漏检测原理 152 

    4.5.2 内存泄漏器ResourceLeakDetector源码剖析 153 

    4.6 小结 164 

    第5章 Netty读/写请求源码剖析 165 

    5.1 ServerBootstrap启动过程剖析 165 

    5.2 Netty对I/O就绪事件的处理 172 

    5.2.1 NioEventLoop就绪处理之OP_ACCEPT 172 

    5.2.2 NioEventLoop就绪处理之OP_READ(一) 175 

    5.2.3 NioEventLoop就绪处理之OP_READ(二) 182 

    第6章 Netty内存管理 195 

    6.1 Netty内存管理策略介绍 195 

    6.2 PoolChunk内存分配 197 

    6.2.1 PoolChunk分配大于或等于8KB的内存 197 

    6.2.2 PoolChunk分配小于8KB的内存 201 

    6.3 PoolSubpage内存分配与释放 205 

    6.4 PoolArena内存管理 214 

    6.5 RecvByteBufAllocator内存分配计算 223 

    6.6 小结 227 

    第7章 Netty时间轮高级应用 228 

    7.1 Netty时间轮的解读 229 

    7.1.1 时间轮源码剖析之初始化构建 230 

    7.1.2 时间轮源码剖析之Worker启动线程 236 

    7.2 Netty时间轮改造方案制订 239 

    7.3 时间轮高级应用之架构设计 241 

    7.4 时间轮高级应用之实战10亿级任务 243 

    7.5 小结 245 

    第8章 问题分析与性能调优 246 

    8.1 Netty服务在Linux服务器上的部署 246 

    8.2 Netty服务模拟秒杀压测 255 

    8.3 常见生产问题分析 264 

    8.4 性能调优 267 

    8.5 小结 270
查看详情
12
相关图书 / 更多
Netty源码剖析与应用
NewandSelectedPoems,VolumeOne
Mary Oliver 著
Netty源码剖析与应用
Negotiating Rationally
Bazerman;Max H.;Neale;Margaret A
Netty源码剖析与应用
Neuroscience For Dummies
Amthor, Frank
Netty源码剖析与应用
NewEraofMedicalEmpowerment:BestCaseSharin
谷成明、毛京梅、贺李镜 著
Netty源码剖析与应用
Neo4j图数据库扩展指南:APOC和ALGO(图数据库技术丛书)
俞方桦 著
Netty源码剖析与应用
Never Too Little to Love
Willis, Jeanne;Fearnley, Jan
Netty源码剖析与应用
Netty实战
王金柱
Netty源码剖析与应用
Neuberg-Pedoe定理:距离几何分析导引(2015数学基金)
张晗方 著;王梓坤 编
Netty源码剖析与应用
Netty原理解析与开发实战
柳伟卫 著
Netty源码剖析与应用
Netty 4核心原理与手写RPC框架实战
谭勇德(Tom) 著
Netty源码剖析与应用
Nevermoor: The Trials of Morrigan Crow
Townsend, Jessica
Netty源码剖析与应用
NewShoesforSilvia
Johanna Hurwitz 著;Jerry Pinkney 绘