Netty源码剖析与应用

Netty源码剖析与应用
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2020-11
版次: 1
ISBN: 9787121398537
定价: 89.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 280页
字数: 308千字
14人买过
  • 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
查看详情
相关图书 / 更多
Netty源码剖析与应用
New小学英语同步阅读 五年级上册
郑文
Netty源码剖析与应用
New Thinking in GIScience
Bin Li;Xun Shi;A-Xin
Netty源码剖析与应用
Neo4j图谱分析实战
[美]埃斯特尔·赛弗 著;沈·F 译
Netty源码剖析与应用
Netty源码全解与架构思维
黄俊
Netty源码剖析与应用
New小学英语同步阅读 三年级上册
郑文
Netty源码剖析与应用
Nesbitt不等式加强式的研究
邹守文 著
Netty源码剖析与应用
New小学英语同步阅读 二年级下册
郑文
Netty源码剖析与应用
New小学英语同步阅读 六年级上册
郑文
Netty源码剖析与应用
New小学英语同步阅读一年级上册
郑文 编
Netty源码剖析与应用
Next.js实战
[美]米歇尔·里瓦 著;李伟 译
Netty源码剖析与应用
New小学英语同步阅读 一年级下册
郑文
Netty源码剖析与应用
New小学英语同步阅读 六年级下册
郑文
您可能感兴趣 / 更多
Netty源码剖析与应用
测绘与地理空间信息学进展
刘耀林 著;宁津生;陈俊勇;王家耀;李德仁;张祖勋;刘经南;龚健雅;李建成
Netty源码剖析与应用
土地信息系统(第3版)/普通高等教育农业农村部“十三五”规划教材
刘耀林 编
Netty源码剖析与应用
地理信息系统(第2版普通高等教育农业农村部十三五规划教材)
刘耀林 编
Netty源码剖析与应用
土地信息系统(第二版)
刘耀林 编
Netty源码剖析与应用
土地评价理论、方法与系统开发
刘耀林、焦利民 著
Netty源码剖析与应用
土地信息学
刘耀林、何建华 著
Netty源码剖析与应用
环境信息系统
刘耀林
Netty源码剖析与应用
地理信息系统/普通高等教育“十一五”国家级规划教材
刘耀林 编
Netty源码剖析与应用
城市环境分析
刘耀林 编