Netty权威指南_netty权威指南

Netty权威指南_netty权威指南《Netty权威指南》基本信息作者:李林锋   出版社:电子工业出版社ISBN:9787121233432上架时间:2014-5-29出版日期:2014年6月开本:16开页码:524版次:1-1所属分类:计算机>软件与程序设计>综合>高级程序语言设计 更多关于》》》《Netty权威指南》 编辑推荐   …

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

《Netty权威指南》

基本信息

作者: 李林锋   

出版社:电子工业出版社

ISBN:9787121233432

上架时间:2014-5-29

出版日期:2014 年6月

开本:16开

页码:524

版次:1-1

所属分类:计算机 > 软件与程序设计 > 综合 > 高级程序语言设计

Netty权威指南_netty权威指南 

更多关于》》》 《Netty权威指南》

 

编辑推荐

       资深一线专家诚意之作,总结多年实践经验,带你全面掌握Java高并发异步通信的首选框架——Netty。

   Facebook、阿里巴巴、1号店、并发编程网、JBoss等多位资深技术专家联名力荐。

  《Netty权威指南》是异步非阻塞通信领域的经典之作,是国内首本深入分析和讲解Netty原理和架构的著作,内容包含基础功能、高级应用、系统架构、源码分析和行业应用,深入阐述了Java I/O的Netty NIO开发、Netty编解码开发、Netty多协议开发等各方面的技术要点,包含了对源码的深刻解读,并且对Netty的应用现状和未来趋势进行分析,旨在帮助从业人员提升自我,更快更明确地发展职业道路。

   Netty是什么?使用Netty能够做什么?为什么要从传统的Socket开发切换到NIO进行编程?为什么不直接基于JDK的NIO类库编程而选择Netty?如何全面系统地掌握Netty,进行Netty NIO开发、Netty编解码开发、Netty多协议开发?如何通过对Netty源码的学习获得更深入地知识?掌握了Netty后,如何将其应用到实际架构中?Netty工程师的就业前景和可涉足的行业是怎样的?本书都会一一解答。

 

内容简介

    书籍

    计算机书籍

《netty权威指南》是异步非阻塞通信领域的经典之作,基于最新版本netty 5.0编写,是国内首本深入介绍netty原理和架构的技术书籍,也是作者多年实战经验的总结和浓缩。在理论方面,讲解了netty的逻辑架构模型和核心类库的设计原理,而且对netty在大数据、互联网、游戏行业的应用进行了深入分析;实战方面,从第一个netty入门程序到私有协议栈的设计和开发,通过实际例程,由浅入深地对netty的核心api和类库的功能和用法进行了细致讲解。

《netty权威指南》适合架构师、设计师、软件开发工程师、测试人员和其他对java nio框架、java通信感兴趣的相关人士阅读,相信通过学习本书,能够熟悉和掌握netty这一优秀的异步通信框架,实现高可用分布式系统的构建。

 

媒体评论

  与林锋兄相识甚早,他在NIO相关领域实战经验丰富,成绩斐然,并且乐于分享,旨在帮助更多人得到技术上的进步,是一位我很尊敬的技术思考者、实践者和推广者。Netty作为Dubbo底层的高性能分布式通信框架,在实际开发中,我非常关心如高效序列化/编解码、线程模型调优、高效Buffer使用、心跳重连策略、优雅停机、宕机异常处理、NIO并发安全处理等核心问题,而本书中对这些问题都进行了详细说明,并提炼出了处理原则,给出了提纲挈领般的引导。书中对这些问题的分析总结可以得到不少从头摸爬滚打才能获得的收获,希望你和我一样能有眼前一亮的感觉。

  ——阿里巴巴Dubbo、PaaS平台核心开发架构师李鼎

  Netty是一个令人惊讶的项目,在短短几年成为众多Java高并发异步通信的首选框架。但目前国内资料极少并缺乏系统性,而李兄的这本系统介绍Netty开发和原理的书籍,很完美地填补了这个空白。国内的技术人员对Java NIO和Netty理解多一些,也就意味着国内整体网络编程技术的进步。本书条理清晰,对技术的阐述循序渐进,是一本难得的Netty学习教材,推荐有志青年仔细学习研究本书,共同把NIO异步通信编程推向一个新高度。

  ——JBoss应用服务器核心开发组成员张建锋

  经常有很多Java领域的应届生和程序员来咨询我我,说自己非常希望找到心仪的工作,但是不知道如何学习和提高。在Java中我觉得比较有挑战性的技术就是网络I/O编程和多线程并发编程,而Netty作为企业高性能异步NIO通信的首选框架,在Twitter、Facebook、阿里巴巴等著名公司都得到了应用,学习和掌握它,对于个人的职业和技术发展都极具意义。本书正是一本引领我们由浅入深学习Netty的宝典,非常值得仔细研读和思考。

  ——并发编程网站长方腾飞

  网络通信框架Netty已经逐渐成为了构建高可用分布式系统核心组件通信的基础,它的线程模型、零拷贝和多协议支持也让从业者们爱不释手,林锋兄作为国内NIO领域和Netty框架研究最早、水平最高的架构师之一,在本书中对Netty进行了全面的解析,其中大量的源码剖析和实战讲解给想学习NIO编程和Netty,进阶分布式的同学提出了一些思想或者说指引了前进方向,非常推荐。

  ——1号店资深架构师彭荣新

 

目录

《netty权威指南》

基础篇 走进java nio

第1章 java的i/o演进之路 2

1.1 i/o基础入门 3

1.1.1 linux网络i/o模型简介 3

1.1.2 i/o多路复用技术 6

1.2 java的i/o演进 8

1.3 总结 10

第2章 nio入门 11

2.1 传统的bio编程 11

2.1.1 bio通信模型图 12

2.1.2 同步阻塞式i/o创建的timeserver源码分析 13

2.1.3 同步阻塞式i/o创建的timeclient源码分析 16

2.2 伪异步i/o编程 18

2.2.1 伪异步i/o模型图 19

2.2.2 伪异步式i/o创建的timeserver源码分析 19

2.2.3 伪异步i/o弊端分析 21

2.3 nio编程 24

2.3.1 nio类库简介 24

2.3.2 nio服务端序列图 28

2.3.3 nio创建的timeserver源码分析 31

2.3.4 nio客户端序列图 36

2.3.5 nio创建的timeclient源码分析 39

2.4 aio编程 45

2.4.1 aio创建的timeserver源码分析 46

2.4.2 aio创建的timeclient源码分析 52

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

2.5 4种i/o的对比 58

2.5.1 概念澄清 58

2.5.2 不同i/o模型对比 60

2.6 选择netty的理由 60

2.6.1 不选择java原生nio编程的原因 61

2.6.2 为什么选择netty 62

2.7 总结 63

入门篇 netty nio开发指南

第3章 netty入门应用 66

3.1 netty开发环境的搭建 66

3.1.1 下载netty的软件包 67

3.1.2 搭建netty应用工程 67

3.2 netty服务端开发 68

3.3 netty客户端开发 73

3.4 运行和调试 76

3.4.1 服务端和客户端的运行 76

3.4.2 打包和部署 77

3.5 总结 78

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

4.1 tcp粘包/拆包 79

4.1.1 tcp粘包/拆包问题说明 80

4.1.2 tcp粘包/拆包发生的原因 80

4.1.3 粘包问题的解决策略 81

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

4.2.1 timeserver的改造 82

4.2.2 timeclient的改造 83

4.2.3 运行结果 84

4.3 利用linebasedframedecoder解决tcp粘包问题 88

4.3.1 支持tcp粘包的timeserver 88

4.3.2 支持tcp粘包的timeclient 90

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

4.3.4 linebasedframedecoder和stringdecoder的原理分析 98

4.4 总结 99

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

5.1 delimiterbasedframedecoder应用开发 101

5.1.1 delimiterbasedframedecoder服务端开发 101

5.1.2 delimiterbasedframedecoder客户端开发 104

5.1.3 运行delimiterbasedframedecoder服务端和客户端 106

5.2 fixedlengthframedecoder应用开发 108

5.2.1 fixedlengthframedecoder服务端开发 108

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

5.3 总结 111

中级篇 netty编解码开发指南

第6章 编解码技术 114

6.1 java序列化的缺点 115

6.1.1 无法跨语言 115

6.1.2 序列化后的码流太大 115

6.1.3 序列化性能太低 118

6.2 业界主流的编解码框架 121

6.2.1 google的protobuf介绍 121

6.2.2 facebook的thrift介绍 123

6.2.3 jboss marshalling介绍 124

6.3 总结 125

第7章 java序列化 126

7.1 netty java序列化服务端开发 126

7.2 java序列化netty客户端开发 132

7.3 运行结果 135

7.4 总结 137

第8章 google protobuf编解码 138

8.1 protobuf的入门 139

8.1.1 protobuf开发环境搭建 139

8.1.2 protobuf编解码开发 141

8.1.3 运行protobuf例程 143

8.2 netty的protobuf服务端开发 143

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

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

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

8.3 protobuf的使用注意事项 152

8.4 总结 153

第9章 jboss marshalling编解码 154

9.1 marshalling开发环境准备 154

9.2 netty的marshalling服务端开发 155

9.3 netty的marshalling客户端开发 158

9.4 运行marshalling客户端和服务端例程 160

9.5 总结 162

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

第10章 http协议开发应用 164

10.1 http协议介绍 165

10.1.1 http协议的url 165

10.1.2 http请求消息(httprequest) 165

10.1.3 http响应消息(httpresponse) 168

10.2 netty http服务端入门开发 169

10.2.1 http服务端例程场景描述 170

10.2.2 http服务端开发 170

10.2.3 netty http文件服务器例程运行结果 178

10.3 netty http+xml协议栈开发 182

10.3.1 开发场景介绍 183

10.3.2 http+xml协议栈设计 186

10.3.3 高效的xml绑定框架jibx 187

10.3.4 http+xml编解码框架开发 195

10.3.5 http+xml协议栈测试 211

10.3.6 小结 213

10.4 总结 214

第11章 websocket协议开发 215

11.1 http协议的弊端 216

11.2 websocket入门 216

11.2.1 websocket背景 217

11.2.2 websocket连接建立 218

11.2.3 websocket生命周期 219

11.2.4 websocket连接关闭 220

11.3 netty websocket协议开发 221

11.3.1 websocket服务端功能介绍 221

11.3.2 websocket服务端开发 222

11.3.3 运行websocket服务端 230

11.4 总结 231

第12章 udp协议开发 233

12.1 udp协议简介 234

12.2 udp服务端开发 235

12.3 udp客户端开发 238

12.4 运行udp例程 240

12.5 总结 241

第13章 文件传输 242

13.1 文件的基础知识 243

13.1.1 文件的概念 243

13.1.2 文件路径 243

13.1.3 文件名称 244

13.1.4 filechannel简介 244

13.2 netty文件传输开发 245

13.3 运行netty文件传输服务例程 248

13.4 总结 250

第14章 私有协议栈开发 251

14.1 私有协议介绍 251

14.2 netty协议栈功能设计 253

14.2.1 网络拓扑图 253

14.2.2 协议栈功能描述 254

14.2.3 通信模型 254

14.2.4 消息定义 255

14.2.5 netty协议支持的字段类型 256

14.2.6 netty协议的编解码规范 257

14.2.7 链路的建立 259

14.2.8 链路的关闭 260

14.2.9 可靠性设计 260

14.2.10 安全性设计 262

14.2.11 可扩展性设计 262

14.3 netty协议栈开发 263

14.3.1 数据结构定义 263

14.3.2 消息编解码 267

14.3.3 握手和安全认证 271

14.3.4 心跳检测机制 275

14.3.5 断连重连 278

14.3.6 客户端代码 279

14.3.7 服务端代码 281

14.4 运行协议栈 282

14.4.1 正常场景 282

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

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

14.5 总结 286

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

第15章 bytebuf和相关辅助类 290

15.1 bytebuf功能说明 290

15.1.1 bytebuf的工作原理 291

15.1.2 bytebuf的功能介绍 296

15.2 bytebuf源码分析 310

15.2.1 bytebuf的主要类继承关系 311

15.2.2 abstractbytebuf源码分析 312

15.2.3 abstractreferencecountedbytebuf源码分析 321

15.2.4 unpooledheapbytebuf源码分析 323

15.2.5 pooledbytebuf内存池原理分析 328

15.2.6 pooleddirectbytebuf源码分析 331

15.3 bytebuf相关的辅助类功能介绍 334

15.3.1 bytebufholder 334

15.3.2 bytebufallocator 335

15.3.3 compositebytebuf 336

15.3.4 bytebufutil 338

15.4 总结 339

第16章 channel和unsafe 340

16.1 channel 功能说明 340

16.1.1 channel的工作原理 341

16.1.2 channel的功能介绍 342

16.2 channel源码分析 345

16.2.1 channel的主要继承关系类图 345

16.2.2 abstractchannel源码分析 346

16.2.3 abstractniochannel源码分析 349

16.2.4 abstractniobytechannel源码分析 352

16.2.5 abstractniomessagechannel源码分析 356

16.2.6 abstractniomessageserverchannel源码分析 357

16.2.7 nioserversocketchannel源码分析 358

16.2.8 niosocketchannel源码分析 360

16.3 unsafe功能说明 366

16.4 unsafe源码分析 367

16.4.1 unsafe继承关系类图 367

16.4.2 abstractunsafe源码分析 367

16.4.3 abstractniounsafe源码分析 377

16.4.4 niobyteunsafe源码分析 380

16.5 总结 387

第17章 channelpipeline和channelhandler 389

17.1 channelpipeline功能说明 390

17.1.1 channelpipeline的事件处理 390

17.1.2 自定义拦截器 392

17.1.3 构建pipeline 393

17.1.4 channelpipeline的主要特性 394

17.2 channelpipeline源码分析 394

17.2.1 channelpipeline的类继承关系图 394

17.2.2 channelpipeline对channelhandler的管理 394

17.2.3 channelpipeline的inbound事件 397

17.2.4 channelpipeline的outbound事件 398

17.3 channelhandler功能说明 399

17.3.1 channelhandleradapter功能说明 400

17.3.2 bytetomessagedecoder功能说明 400

17.3.3 messagetomessagedecoder功能说明 401

17.3.4 lengthfieldbasedframedecoder功能说明 402

17.3.5 messagetobyteencoder功能说明 405

17.3.6 messagetomessageencoder功能说明 406

17.3.7 lengthfieldprepender功能说明 406

17.4 channelhandler源码分析 407

17.4.1 channelhandler的类继承关系图 407

17.4.2 bytetomessagedecoder源码分析 408

17.4.3 messagetomessagedecoder源码分析 411

17.4.4 lengthfieldbasedframedecoder源码分析 413

17.4.5 messagetobyteencoder源码分析 417

17.4.6 messagetomessageencoder源码分析 418

17.4.7 lengthfieldprepender源码分析 419

17.5 总结 420

第18章 eventloop和eventloopgroup 421

18.1 netty的线程模型 421

18.1.1 reactor单线程模型 422

18.1.2 reactor多线程模型 423

18.1.3 主从reactor多线程模型 424

18.1.4 netty的线程模型 425

18.1.5 最佳实践 427

18.2 nioeventloop源码分析 427

18.2.1 nioeventloop设计原理 427

18.2.2 nioeventloop继承关系类图 428

18.2.3 nioeventloop 429

18.3 总结 440

第19章 future和promise 441

19.1 future功能 441

19.2 channelfuture源码分析 446

19.3 promise功能介绍 448

19.4 promise源码分析 450

19.4.1 promise继承关系图 450

19.4.2 defaultpromise 450

19.5 总结 453

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

第20章 java多线程编程在netty中的应用 456

20.1 java内存模型与多线程编程 456

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

20.1.2 java内存模型 457

20.2 netty的并发编程实践 459

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

20.2.2 正确的使用锁 460

20.2.3 volatile的正确使用 462

20.2.4 cas指令和原子类 465

20.2.5 线程安全类的应用 467

20.2.6 读写锁的应用 470

20.2.7 线程安全性文档说明 472

20.2.8 不要依赖线程优先级 473

20.3 总结 474

第21章 netty架构剖析 475

21.1 netty逻辑架构 475

21.1.1 reactor通信调度层 476

21.1.2 职责链channelpipeline 476

21.1.3 业务逻辑编排层(service channelhandler) 477

21.2 关键架构质量属性 477

21.2.1 高性能 477

21.2.2 可靠性 480

21.2.3 可定制性 483

21.2.4 可扩展性 483

21.3 总结 483

第22章 netty行业应用 484

22.1 netty在互联网行业的应用 485

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

22.1.2 阿里分布式服务框架dubbo 485

22.1.3 dubbo的架构介绍 487

22.1.4 netty在dubbo中的应用 489

22.1.5 dubbo框架集成netty源码分析 491

22.2 netty在大数据领域的应用 496

22.3 netty在游戏行业的应用 497

22.3.1 游戏服务端架构介绍 498

22.3.2 netty在游戏服务端的应用 501

22.4 总结 502

第23章 netty未来展望 503

23.1 应用范围 503

23.2 技术演进 504

23.3 社区活跃度 504

23.4 road map 504

23.5 总结 505

附录a netty参数配置表 506

 

 

本图书信息来源:互动出版网

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186757.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • java生成license_使用truelicense实现用于JAVA工程license机制(包括license生成和验证)…

    java生成license_使用truelicense实现用于JAVA工程license机制(包括license生成和验证)…开发的软件产品在交付使用的时候,往往会授权一段时间的试用期,这个时候license就派上用场了。不同于在代码中直接加上时间约束,需要重新授权的时候使用license可以避免修改源码,改动部署,授权方直接生成一个新的license发送给使用方替换掉原来的license文件即可。下面将讲述使用truelicense来实现license的生成和使用。Truelicense是一个开源的证书管理引擎,详细介…

  • Java中的statickeyword具体解释[通俗易懂]

    Java中的statickeyword具体解释

  • 开启2019,依然在路上

    依然在路上,享受每一天这一年,简单做,坚持做,沉下心,等待花开。现在已经是2019年2月份了,过完了年,开始上班了,回想过年的那些日子,真的是简单和快乐,如果经常看我博客的伙伴一定知道,我2018年写过很多次我的精神状态(有点抑郁),我很多次调整自己,尝试让自己快乐一点,但是一直很难摆脱那种心理消极不开心的状态。好在我陷入的不是很深,现在我感觉自己已经差不多走出来了,当我这段时间去回想2…

  • vue3 codemirror_codemirror不显示代码

    vue3 codemirror_codemirror不显示代码前言如果我们想在Web端实现在线代码编译的效果,那么需要使用组件vue-codemirror,他是将CodeMirror进行了再次封装支持代码高亮62种主题颜色,例如monokai等等支持js

  • oracle错误 904,IMP-00058: 遇到 ORACLE 错误 904

    oracle错误 904,IMP-00058: 遇到 ORACLE 错误 904我将A服务器下的导入B服务器时其中一个表出现以下错误,出错误后我单独将这个表导出,然后导入。B服务器下已有T_CALLREORDS表,并且已有新数据,T_CALLREORDS有外键约束T_USER表。我的语句如下C:UsersAdministrator>impgxcfkefu/gxcfkefufull=yfile=e:/gxcf_T_CAL…显示全部我将A服务器下的导入B服务器时…

  • 如何从从官网下载各个版本的jquery「建议收藏」

    如何从从官网下载各个版本的jquery「建议收藏」许多前端的小伙伴们可能跟我一样有选择强迫症,对于一些工具、软件等都偏爱从官网下载,尽管许多非官方网站上已经有现成的,但还是从心理上感觉官网的更正规。如今的jquery版本已经是相当多了。在jquery官网的首页上只提供了为数不多的较为流行的版本供我们下载。但是出于各种情况的考虑,我们想要自己需要的某一版本该如何从官网获取呢?步骤也是相当简单,jquery官网虽然为了页面的简洁性并未在Downl…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号