Netty实战图书
人气:110

Netty实战

Java高性能网络编程参考书 Netty之父Trustin Lee作序推荐 含有大量即用型的品质示例 附带行业一线公司的案例研究 实用的Netty技术书
  • 所属分类:图书 >计算机/网络>程序设计>其他  
  • 作者:[美] [诺曼·毛瑞尔]([Norman] [Maurer])[马文·艾伦·沃尔夫泰尔]([Marvin] [Allen] [Wolfthal])
  • 产品参数:
  • 丛书名:--
  • 国际刊号:9787115453686
  • 出版社:人民邮电出版社
  • 出版时间:2017-04
  • 印刷时间:2017-05-01
  • 版次:1
  • 开本:16开
  • 页数:--
  • 纸张:胶版纸
  • 包装:平装-胶订
  • 套装:

内容简介

Netty实战 是为想要或者正在使用Java 从事高性能网络编程的人而写的,循序渐进地介绍了Netty各个方面的内容。 Netty实战 共分为4 个部分:diyi部分详细地介绍Netty 的相关概念以及核心组件,第二部分介绍自定义协议经常用到的编解码器,第三部分介绍Netty 对于应用层高级协议的支持,会覆盖常见的协议及其在实践中的应用,第四部分是几个案例研究。此外,附录部分会还简单地介绍Maven,以及如何通过使用Maven 编译和运行Netty实战 中的示例。 阅读本书不需要读者精通Java 网络和并发编程。如果想要更加深入地理解本书背后的理念以及Netty 源码本身,可以系统地学习一下Java 网络编程、NIO、并发和异步编程以及相关的设计模式。

编辑推荐

- Netty之父”Trustin Lee作序推荐 - 中间件高级技术专家为本书中文版作序推荐 - 系统而详细地介绍了Netty的各个方面并附带了即用型的品质示例 - 附带行业一线公司的案例研究 - 极实用的Netty技术书 无论是构建高性能的Web、游戏服务器、推送系统、RPC框架、消息中间件还是分布式大数据处理引擎,都离不开Netty,在整个行业中,Netty广泛而成功的应用,使其成为了Java高性能网络编程的卓绝框架。 Netty的现Tech Lead Norman在Netty实战 中循序渐进地讲解了Netty的各个关键部分,在看完Netty实战 后,你不但可以熟练地使用Netty来构建以上系统,并且还可以避免很多常见的陷阱。 无论是想要学习Spring 5 、Spark、Cassandra等这样的系统,还是通过学习Netty来构建自己的基于Java的高性能网络框架,或者是更加具体的高性能Web或者游戏服务器等,本书都将是你的绝佳拍档。 本书中文版基于zuixin的Netty4.1.9做了修订,希望本书能够给你带来一个接近的阅读体验,并能帮到你。

作者简介

作者简介 Norman Maurer是苹果公司的zishen软件工程师,同时也是Netty的核心开发人员。 Marvin Allen Wolfthal是Dell Services的顾问,他使用Netty实现了多个任务关键型的企业系统。 译者简介 何品,目前是的一名zishen软件工程师,热爱网络、并发、异步相关的主题以及函数式编程,同时也是Netty、Akka等项目的贡献者,活跃于Scala社区,目前也在从事GraphQL相关的开发工作。

目录

及时部分 Netty的概念及体系结构

第1章 Netty——异步和事件驱动3

1.1Java 网络编程4

1.1.1Java NIO5

1.1.2选择器6

1.2Netty 简介6

1.2.1谁在使用Netty7

1.2.2异步和事件驱动8

1.3Netty 的核心组件9

1.3.1Channel9

1.3.2回调9

1.3.3Future10

1.3.4事件和ChannelHandler11

1.3.5把它们放在一起12

1.4小结13

第2章 你的及时款Netty应用程序14

2.1设置开发环境14

2.1.1获取并安装Java 开发工具包14

2.1.2下载并安装IDE15

2.1.3下载和安装Apache Maven15

2.1.4配置工具集16

2.2Netty 客户端/服务器概览16

2.3编写Echo 服务器17

2.3.1ChannelHandler 和业务逻辑17

2.3.2引导服务器18

2.4编写Echo 客户端21

2.4.1通过ChannelHandler 实现客户端逻辑21

2.4.2引导客户端22

2.5构建和运行Echo 服务器和客户端24

2.5.1运行构建24

2.5.2运行Echo 服务器和客户端27

2.6小结29

第3章 Netty 的组件和设计30

3.1Channel、EventLoop 和ChannelFuture30

3.1.1Channel 接口31

3.1.2EventLoop 接口31

3.1.3ChannelFuture 接口32

3.2ChannelHandler 和ChannelPipeline32

3.2.1ChannelHandler 接口32

3.2.2ChannelPipeline 接口33

3.2.3更加深入地了解ChannelHandler34

3.2.4编码器和解码器35

3.2.5抽象类SimpleChannelInboundHandler35

3.3引导36

3.4小结37

第4章 传输38

4.1案例研究:传输迁移38

4.1.1不通过Netty 使用OIO和NIO39

4.1.2通过Netty 使用OIO和NIO41

4.1.3非阻塞的Netty 版本42

4.2传输API43

4.3内置的传输45

4.3.1NIO——非阻塞I/O46

4.3.2Epoll——用于Linux的本地非阻塞传输47

4.3.3OIO——旧的阻塞I/O48

4.3.4用于JVM 内部通信的Local 传输48

4.3.5Embedded 传输49

4.4传输的用例49

4.5小结51

第5章 ByteBuf52

5.1ByteBuf 的API52

5.2ByteBuf 类——Netty的数据容器53

5.2.1它是如何工作的53

5.2.2ByteBuf 的使用模式53

5.3字节级操作57

5.3.1随机访问索引57

5.3.2顺序访问索引57

5.3.3可丢弃字节58

5.3.4可读字节58

5.3.5可写字节59

5.3.6索引管理59

5.3.7查找操作60

5.3.8派生缓冲区60

5.3.9读/写操作62

5.3.10更多的操作64

5.4ByteBufHolder 接口65

5.5ByteBuf 分配65

5.5.1按需分配:ByteBufAllocator 接口65

5.5.2Unpooled 缓冲区67

5.5.3ByteBufUtil 类67

5.6引用计数67

5.7小结68

第6章 ChannelHandler 和ChannelPipeline70

6.1ChannelHandler 家族70

6.1.1Channel 的生命周期70

6.1.2ChannelHandler的生命周期71

6.1.3ChannelInboundHandler接口71

6.1.4ChannelOutboundHandler接口73

6.1.5ChannelHandler 适配器74

6.1.6资源管理74

6.2ChannelPipeline 接口76

6.2.1修改ChannelPipeline78

6.2.2触发事件79

6.3ChannelHandlerContext接口80

6.3.1使用ChannelHandlerContext82

6.3.2ChannelHandler 和ChannelHandlerContext 的高级用法84

6.4异常处理86

6.4.1处理入站异常86

6.4.2处理出站异常87

6.5小结88

第7章 EventLoop 和线程模型89

7.1线程模型概述89

7.2EventLoop 接口90

7.2.1Netty 4 中的I/O 和事件处理92

7.2.2Netty 3 中的I/O 操作92

7.3任务调度93

7.3.1JDK 的任务调度API93

7.3.2使用EventLoop调度任务94

7.4实现细节95

7.4.1线程管理95

7.4.2EventLoop/线程的分配96

7.5小结98

第8章 引导99

8.1Bootstrap 类99

8.2引导客户端和无连接协议101

8.2.1引导客户端102

8.2.2Channel 和EventLoopGroup 的兼容性103

8.3引导服务器104

8.3.1ServerBootstrap 类104

8.3.2引导服务器105

8.4从Channel引导客户端107

8.5在引导过程中添加多个ChannelHandler108

8.6使用Netty 的ChannelOption 和属性110

8.7引导DatagramChannel111

8.8关闭112

8.9小结112

第9章 单元测试113

9.1EmbeddedChannel概述113

9.2使用EmbeddedChannel测试ChannelHandler115

9.2.1测试入站消息115

9.2.2测试出站消息118

9.3测试异常处理119

9.4小结121

第二部分编解码器

第10章 编解码器框架125

10.1什么是编解码器125

10.2解码器125

10.2.1抽象类ByteToMessageDecoder126

10.2.2抽象类ReplayingDecoder127

10.2.3抽象类MessageToMessageDecoder128

10.2.4TooLongFrameException 类130

10.3编码器131

10.3.1抽象类MessageToByteEncoder131

10.3.2抽象类MessageToMessageEncoder132

10.4抽象的编解码器类133

10.4.1抽象类ByteToMessageCodec133

10.4.2抽象类MessageToMessageCodec134

10.4.3CombinedChannelDuplexHandler 类137

10.5小结138

第11章 预置的ChannelHandler和编解码器139

11.1通过SSL/TLS 保护Netty 应用程序139

11.2构建基于Netty 的HTTP/HTTPS 应用程序141

11.2.1HTTP 解码器、编码器和编解码器141

11.2.2聚合HTTP 消息143

11.2.3HTTP 压缩144

11.2.4使用HTTPS145

11.2.5WebSocket146

11.3空闲的连接和超时148

11.4解码基于分隔符的协议和基于长度的协议150

11.4.1基于分隔符的协议150

11.4.2基于长度的协议153

11.5写大型数据155

11.6序列化数据 157

11.6.1JDK 序列化157

11.6.2使用JBoss Marshalling进行序列化157

11.6.3通过Protocol Buffers序列化159

11.7小结160

第三部分网络协议

第12章 WebSocket163

12.1WebSocket 简介163

12.2我们的WebSocket 示例应用程序164

12.3添加WebSocket支持165

12.3.1处理HTTP 请求165

12.3.2处理WebSocket 帧168

12.3.3初始化ChannelPipeline169

12.3.4引导171

12.4测试该应用程序173

12.5小结176

第13章使用UDP 广播事件177

13.1UDP 的基础知识177

13.2UDP 广播178

13.3UDP 示例应用程序178

13.4消息 POJO:LogEvent179

13.5编写广播者180

13.6编写监视器185

13.7运行LogEventBroadcaster 和LogEventMonitor187

13.8小结189

第四部分案例研究

第14章 案例研究,及时部分193

14.1Droplr—构建移动服务193

14.1.1这一切的起因193

14.1.2Droplr 是怎样工作的194

14.1.3创造一个更加快速的上传体验194

14.1.4技术栈196

14.1.5性能199

14.1.6小结——站在巨人的肩膀上200

14.2Firebase—实时的数据同步服务200

14.2.1Firebase 的架构201

14.2.2长轮询201

14.2.3HTTP 1.1 keep-alive和流水线化204

14.2.4控制SslHandler205

14.2.5Firebase 小结207

14.3Urban Airship—构建移动服务207

14.3.1移动消息的基础知识207

14.3.2第三方递交208

14.3.3使用二进制协议的例子209

14.3.4直接面向设备的递交211

14.3.5Netty 擅长管理大量的并发连接212

14.3.6Urban Airship 小结——跨越防火墙边界213

14.4小结214

第15章 案例研究,第二部分215

15.1Netty 在Facebook 的使用:Nifty 和Swift215

15.1.1什么是Thrift215

15.1.2使用Netty 改善Java Thrift 的现状216

15.1.3Nifty 服务器的设计217

15.1.4Nifty 异步客户端的设计220

15.1.5Swift:一种更快的构建Java Thrift 服务的方式221

15.1.6结果221

15.1.7Facebook 小结224

15.2Netty 在Twitter的使用:Finagle224

15.2.1Twitter 成长的烦恼224

15.2.2Finagle 的诞生224

15.2.3Finagle 是如何工作的225

15.2.4Finagle 的抽象230

15.2.5故障管理231

15.2.6组合服务232

15.2.7未来:Netty232

15.2.8Twitter 小结233

15.3小结233

附录Maven 介绍234

媒体评论

“diyi本关于Netty的书……展示了如何构建高性能、低延迟的网络应用程序。” ——摘自Netty创始人Trustin Lee为本书撰写的前言 “高性能的Java网络栈——涵盖了从概念到zuijia实践的内容。” ——Christian Bach,Grid Trading Platform “关于较大限度利用Netty的zui的内容。” ——Jürgen Hoffmann,Red Hat “关于Netty框架的极好综述。强烈推荐给使用Java处理性能敏感的网络I/O的任

网友评论(不代表本站观点)

来自匿名用**的评论:

非常满意,很喜欢

2017-05-15 08:24:51
来自c***r(**的评论:

很好,就是比想象中薄了一点

2017-05-21 00:41:14
来自匿名用**的评论:

学习Java io,到时找个好工作

2017-05-25 11:07:13
来自匿名用**的评论:

书不厚,实战系列一直不错,推荐

2017-05-27 14:36:23
来自g***h(**的评论:

OK OK

2017-05-30 14:50:55
来自匿名用**的评论:

先评论,看完之后再补评

2017-06-01 21:09:40
来自匿名用**的评论:

不错正在学习

2017-06-03 00:57:32
来自匿名用**的评论:

不错不错不错不错不错不错不错不错不错不错

2017-06-03 14:51:29
来自匿名用**的评论:

看了一下目录,还不错;活动时买的,很划算

2017-06-03 16:46:41
来自匿名用**的评论:

送货速度快,书籍质量好,优惠力度大

2017-06-09 20:05:07
来自匿名用**的评论:

先看看再说。。。。。。

2017-06-23 12:02:11
来自泡***资**的评论:

很好,书不错

2017-06-28 11:10:07
来自木落辰**的评论:

不错不错哦!

2017-07-10 22:40:11
来自匿名用**的评论:

有点失望,是不是漏了很多章节?

2017-07-12 23:42:26
来自匿名用**的评论:

还没看,不知道

2017-07-13 11:44:01
来自诺***G(**的评论:

good de

2017-07-25 09:01:40
来自fpltnup**的评论:

还行啊,可以看看呢,还在看,没看完

2017-08-15 15:52:59
来自无昵称**的评论:

还没有看,看完再评论

2017-08-29 16:14:20
来自闫***c(**的评论:

对工作帮助大

2017-09-18 12:12:56
来自无昵称**的评论:

对工作帮助很大,可以开阔技术视野,书的印刷质量也很好,快递员服务态度不错。在当当购买书本体验好。

2017-10-13 18:02:41
来自无昵称**的评论:

很好,很有用

2017-10-30 11:31:31
来自匿名用**的评论:

帮同事买的,一本好书,并推荐给其他软件的开发的同事。

2017-06-07 15:51:24
来自d***y(**的评论:

暂且不论译者的技术水平如何,仅从翻译水平来看,基本只能打一分,看这书还不如看英文文档舒服,各种蹩脚,真的感觉这英语是体育老师教的。白瞎一本好书!

2017-06-13 10:02:38
登录后即可发表评论

免责声明

更多相关图书
在线咨询