万本电子书0元读

万本电子书0元读

顶部广告

Netty权威指南电子书

售       价:¥

纸质售价:¥54.50购买纸书

509人正在读 | 2人评论 6.8

作       者:李林锋

出  版  社:电子工业出版社

出版时间:2014-06-01

字       数:34.4万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
《Netty权威指南》是异步非阻塞通信领域的经典之作,基于*版本Netty5.0编写,是国内首本深介绍Netty原理和架构的技术书籍,也是作者多年实战经验的总结和浓缩。在理论方面,讲解了Netty的逻辑架构模型和核心类库的设计原理,而且对Netty在大数据、互联网、游戏行业的应用行了深分析;实战方面,从个Netty门程序到私有协议栈的设计和发,通过实际例程,由浅深地对Netty的核心API和类库的功能和用法行了细致讲解。 《Netty权威指南》适合架构师、设计师、软件发工程师、测试人员和其他对JavaNIO框架、Java通信感兴趣的相关人士阅读,相信通过学习《Netty权威指南》,能够熟悉和掌握Netty这一优秀的异步通信框架,实现高可用分布式系统的构建。<br/>【推荐语】<br/>资深一线专家诚意之作,总结多年实践经验,带你全面掌握Java高并发异步通信的**框架——Netty。 *、JBoss、Facebook、并发编程网、唯品会、1号店等多位资深技术专家联名力荐。 《Netty权威指南》是异步非阻塞通信领域的经典之作,是国内首本深分析和讲解Netty原理和架构的著作,内容包含基础功能、高级应用、系统架构、源码分析和行业应用,深阐述了JavaI/O的NettyNIO发、Netty编解码发、Netty多协议发等各方面的技术要,包含了对源码的深刻解读,并且对Netty的应用现状和未来趋势行分析,旨在帮助从业人员提升自我,更快更明确地发展职业道路。 Netty是什么?使用Netty能够做什么?为什么要从传统的Socket发切换到NIO行编程?为什么不直基于JDK的NIO类库编程而选择Netty?如何全面系统地掌握Netty,行NettyNIO发、Netty编解码发、Netty多协议发?如何通过对Netty源码的学习获得更深地知识?掌握了Netty后,如何将其应用到实际架构中?Netty工程师的就业前景和可涉足的行业是怎样的?本书都会一一解答。<br/>【作者】<br/>李林锋:Netty中国推广者,现华为技术有限公司平台中间件架构与设计部设计师,公司总裁技术创新奖获得者。长期从事高性能通信软件的架构设计和发工作,有多年在NIO领域的设计、发和运维经验,精通NIO编程和Netty、Mina等主流NIO框架。<br/>
目录展开

前言

基础篇 走进Java NIO

第1章 Java的I/O演进之路

1.1 I/O基础入门

1.1.1 Linux网络I/O模型简介

1.1.2 I/O多路复用技术

1.2 Java的I/O演进

1.3 总结

第2章 NIO入门

2.1 传统的BIO编程

2.1.1 BIO通信模型图

2.1.2 同步阻塞式I/O创建的TimeServer源码分析

2.1.3 同步阻塞式I/O创建的TimeClient源码分析

2.2 伪异步I/O编程

2.2.1 伪异步I/O模型图

2.2.2 伪异步式I/O创建的TimeServer源码分析

2.2.3 伪异步I/O弊端分析

2.3 NIO编程

2.3.1 NIO类库简介

2.3.2 NIO服务端序列图

2.3.3 NIO创建的TimeServer源码分析

2.3.4 NIO客户端序列图

2.3.5 NIO创建的TimeClient源码分析

2.4 AIO编程

2.4.1 AIO创建的TimeServer源码分析

2.4.2 AIO创建的TimeClient源码分析

2.4.3 AIO版本时间服务器运行结果

2.5 4种I/O的对比

2.5.1 概念澄清

2.5.2 不同I/O模型对比

2.6 选择Netty的理由

2.6.1 不选择Java原生NIO编程的原因

2.6.2 为什么选择Netty

2.7 总结

入门篇 Netty NIO开发指南

第3章 Netty入门应用

3.1 Netty开发环境的搭建

3.1.1 下载Netty的软件包

3.1.2 搭建Netty应用工程

3.2 Netty服务端开发

3.3 Netty客户端开发

3.4 运行和调试

3.4.1 服务端和客户端的运行

3.4.2 打包和部署

3.5 总结

第4章 TCP粘包/拆包问题的解决之道

4.1 TCP粘包/拆包

4.1.1 TCP粘包/拆包问题说明

4.1.2 TCP粘包/拆包发生的原因

4.1.3 粘包问题的解决策略

4.2 未考虑TCP粘包导致功能异常案例

4.2.1 TimeServer的改造

4.2.2 TimeClient的改造

4.2.3 运行结果

4.3 利用LineBasedFrameDecoder解决TCP粘包问题

4.3.1 支持TCP粘包的TimeServer

4.3.2 支持TCP粘包的TimeClient

4.3.3 运行支持TCP粘包的时间服务器程序

4.3.4 LineBasedFrameDecoder和StringDecoder的原理分析

4.4 总结

第5章 分隔符和定长解码器的应用

5.1 DelimiterBasedFrameDecoder应用开发

5.1.1 DelimiterBasedFrameDecoder服务端开发

5.1.2 DelimiterBasedFrameDecoder客户端开发

5.1.3 运行DelimiterBasedFrameDecoder服务端和客户端

5.2 FixedLengthFrameDecoder应用开发

5.2.1 FixedLengthFrameDecoder服务端开发

5.2.2 利用telnet命令行测试EchoServer服务端

5.3 总结

中级篇 Netty编解码开发指南

第6章 编解码技术

6.1 Java序列化的缺点

6.1.1 无法跨语言

6.1.2 序列化后的码流太大

6.1.3 序列化性能太低

6.2 业界主流的编解码框架

6.2.1 Google的Protobuf介绍

6.2.2 Facebook的Thrift介绍

6.2.3 JBoss Marshalling介绍

6.3 总结

第7章 Java序列化

7.1 Netty Java序列化服务端开发

7.2 Java序列化Netty客户端开发

7.3 运行结果

7.4 总结

第8章 Google Protobuf编解码

8.1 Protobuf的入门

8.1.1 Protobuf开发环境搭建

8.1.2 Protobuf编解码开发

8.1.3 运行Protobuf例程

8.2 Netty的Protobuf服务端开发

8.2.1 Protobuf版本的图书订购服务端开发

8.2.2 Protobuf版本的图书订购客户端开发

8.2.3 Protobuf版本的图书订购程序功能测试

8.3 Protobuf的使用注意事项

8.4 总结

第9章 JBoss Marshalling编解码

9.1 Marshalling开发环境准备

9.2 Netty的Marshalling服务端开发

9.3 Netty的Marshalling客户端开发

9.4 运行Marshalling客户端和服务端例程

9.5 总结

高级篇 Netty多协议开发和应用

第10章 HTTP协议开发应用

10.1 HTTP协议介绍

10.1.1 HTTP协议的URL

10.1.2 HTTP请求消息(HttpRequest)

10.1.3 HTTP响应消息(HttpResponse)

10.2 Netty HTTP服务端入门开发

10.2.1 HTTP服务端例程场景描述

10.2.2 HTTP服务端开发

10.2.3 Netty HTTP文件服务器例程运行结果

10.3 Netty HTTP+XML协议栈开发

10.3.1 开发场景介绍

10.3.2 HTTP+XML协议栈设计

10.3.3 高效的XML绑定框架JiBx

10.3.4 HTTP+XML编解码框架开发

10.3.5 HTTP+XML协议栈测试

10.3.6 小结

10.4 总结

第11章 WebSocket协议开发

11.1 HTTP协议的弊端

11.2 WebSocket入门

11.2.1 WebSocket背景

11.2.2 WebSocket连接建立

11.2.3 WebSocket生命周期

11.2.4 WebSocket连接关闭

11.3 Netty WebSocket协议开发

11.3.1 WebSocket服务端功能介绍

11.3.2 WebSocket服务端开发

11.3.3 运行WebSocket服务端

11.4 总结

第12章 UDP协议开发

12.1 UDP协议简介

12.2 UDP服务端开发

12.3 UDP客户端开发

12.4 运行UDP例程

12.5 总结

第13章 文件传输

13.1 文件的基础知识

13.1.1 文件的概念

13.1.2 文件路径

13.1.3 文件名称

13.1.4 FileChannel简介

13.2 Netty文件传输开发

13.3 运行Netty文件传输服务例程

13.4 总结

第14章 私有协议栈开发

14.1 私有协议介绍

14.2 Netty协议栈功能设计

14.2.1 网络拓扑图

14.2.2 协议栈功能描述

14.2.3 通信模型

14.2.4 消息定义

14.2.5 Netty协议支持的字段类型

14.2.6 Netty协议的编解码规范

14.2.7 链路的建立

14.2.8 链路的关闭

14.2.9 可靠性设计

14.2.10 安全性设计

14.2.11 可扩展性设计

14.3 Netty协议栈开发

14.3.1 数据结构定义

14.3.2 消息编解码

14.3.3 握手和安全认证

14.3.4 心跳检测机制

14.3.5 断连重连

14.3.6 客户端代码

14.3.7 服务端代码

14.4 运行协议栈

14.4.1 正常场景

14.4.2 异常场景:服务端宕机重启

14.4.3 异常场景:客户端宕机重启

14.5 总结

源码分析篇 Netty功能介绍和源码分析

第15章 ByteBuf和相关辅助类

15.1 ByteBuf功能说明

15.1.1 ByteBuf的工作原理

15.1.2 ByteBuf的功能介绍

15.2 ByteBuf源码分析

15.2.1 ByteBuf的主要类继承关系

15.2.2 AbstractByteBuf源码分析

15.2.3 AbstractReferenceCountedByteBuf源码分析

15.2.4 UnpooledHeapByteBuf源码分析

15.2.5 PooledByteBuf内存池原理分析

15.2.6 PooledDirectByteBuf源码分析

15.3 ByteBuf相关的辅助类功能介绍

15.3.1 ByteBufHolder

15.3.2 ByteBufAllocator

15.3.3 CompositeByteBuf

15.3.4 ByteBufUtil

15.4 总结

第16章 Channel和Unsafe

16.1 Channel 功能说明

16.1.1 Channel的工作原理

16.1.2 Channel的功能介绍

16.2 Channel源码分析

16.2.1 Channel的主要继承关系类图

16.2.2 AbstractChannel源码分析

16.2.3 AbstractNioChannel源码分析

16.2.4 AbstractNioByteChannel源码分析

16.2.5 AbstractNioMessageChannel源码分析

16.2.6 AbstractNioMessageServerChannel源码分析

16.2.7 NioServerSocketChannel源码分析

16.2.8 NioSocketChannel源码分析

16.3 Unsafe功能说明

16.4 Unsafe源码分析

16.4.1 Unsafe继承关系类图

16.4.2 AbstractUnsafe源码分析

16.4.3 AbstractNioUnsafe源码分析

16.4.4 NioByteUnsafe源码分析

16.5 总结

第17章 ChannelPipeline和ChannelHandler

17.1 ChannelPipeline功能说明

17.1.1 ChannelPipeline的事件处理

17.1.2 自定义拦截器

17.1.3 构建pipeline

17.1.4 ChannelPipeline的主要特性

17.2 ChannelPipeline源码分析

17.2.1 ChannelPipeline的类继承关系图

17.2.2 ChannelPipeline对ChannelHandler的管理

17.2.3 ChannelPipeline的inbound事件

17.2.4 ChannelPipeline的outbound事件

17.3 ChannelHandler功能说明

17.3.1 ChannelHandlerAdapter功能说明

17.3.2 ByteToMessageDecoder功能说明

17.3.3 MessageToMessageDecoder功能说明

17.3.4 LengthFieldBasedFrameDecoder功能说明

17.3.5 MessageToByteEncoder功能说明

17.3.6 MessageToMessageEncoder功能说明

17.3.7 LengthFieldPrepender功能说明

17.4 ChannelHandler源码分析

17.4.1 ChannelHandler的类继承关系图

17.4.2 ByteToMessageDecoder源码分析

17.4.3 MessageToMessageDecoder源码分析

17.4.4 LengthFieldBasedFrameDecoder源码分析

17.4.5 MessageToByteEncoder源码分析

17.4.6 MessageToMessageEncoder源码分析

17.4.7 LengthFieldPrepender源码分析

17.5 总结

第18章 EventLoop和EventLoopGroup

18.1 Netty的线程模型

18.1.1 Reactor单线程模型

18.1.2 Reactor多线程模型

18.1.3 主从Reactor多线程模型

18.1.4 Netty的线程模型

18.1.5 最佳实践

18.2 NioEventLoop源码分析

18.2.1 NioEventLoop设计原理

18.2.2 NioEventLoop继承关系类图

18.2.3 NioEventLoop

18.3 总结

第19章 Future和Promise

19.1 Future功能

19.2 ChannelFuture源码分析

19.3 Promise功能介绍

19.4 Promise源码分析

19.4.1 Promise继承关系图

19.4.2 DefaultPromise

19.5 总结

架构和行业应用篇 Netty高级特性

第20章 Java多线程编程在Netty中的应用

20.1 Java内存模型与多线程编程

20.1.1 硬件的发展和多任务处理

20.1.2 Java内存模型

20.2 Netty的并发编程实践

20.2.1 对共享的可变数据进行正确的同步

20.2.2 正确的使用锁

20.2.3 volatile的正确使用

20.2.4 CAS指令和原子类

20.2.5 线程安全类的应用

20.2.6 读写锁的应用

20.2.7 线程安全性文档说明

20.2.8 不要依赖线程优先级

20.3 总结

第21章 Netty架构剖析

21.1 Netty逻辑架构

21.1.1 Reactor通信调度层

21.1.2 职责链ChannelPipeline

21.1.3 业务逻辑编排层(Service ChannelHandler)

21.2 关键架构质量属性

21.2.1 高性能

21.2.2 可靠性

21.2.3 可定制性

21.2.4 可扩展性

21.3 总结

第22章 Netty行业应用

22.1 Netty在互联网行业的应用

22.1.1 传统垂直架构面临的问题

22.1.2 阿里分布式服务框架Dubbo

22.1.3 Dubbo的架构介绍

22.1.4 Netty在Dubbo中的应用

22.1.5 Dubbo框架集成Netty源码分析

22.2 Netty在大数据领域的应用

22.3 Netty在游戏行业的应用

22.3.1 游戏服务端架构介绍

22.3.2 Netty在游戏服务端的应用

22.4 总结

第23章 Netty未来展望

23.1 应用范围

23.2 技术演进

23.3 社区活跃度

23.4 Road Map

23.5 总结

附录 Netty参数配置表

累计评论(1条) 2个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部