前言

Netty是一款用于快速开发高性能的网络应用程序的Java框架。它封装了网络编程的复杂性,使网络编程和Web技术的最新进展能够被比以往更广泛的开发人员接触到。

Netty不只是一个接口和类的集合;它还定义了一种架构模型以及一套丰富的设计模式。但是直到现在,依然缺乏一个全面的、系统性的用户指南,已经成为入门Netty的一个障碍。

面对这种情况特意给大家分享一波阿里P8费心整理Netty实战+指南+项目白皮书技术文档,希望大家能够喜欢!!!

Netty实战:共分4个部分

本文是为想要或者正在使用Java从事高性能网络编程的人而写的,循序渐进地介绍了Netty各个方面的内容。

第一部分:Netty的概念及体系结构

第一部分是对框架的详细介绍,涵盖了它的设计、组件以及编程接口。

第1章首先简要概述了阻塞和非阻塞的网络API,以及它们对应的JDK接口。我们引入Netty作为构建高度可伸缩的、异步的、事件驱动的网络编程应用的工具包。我们将首先看一下该框架的基础构件块: Channel、 回调、Future、 事件及ChannelHandler。

第2章解释了如何配置读者的系统以构建并运行本书中的示例代码。我们将用一个简单的应阅读本文不需要读者精通Java网络和并发编程。如果想要更加深入地理解本文背后的理念以及Netty源码本身,可以系统地学习一下Java网络编程、NIO、并发和异步编程以及相关的设计模式。

用程序来测试它,这是一-个回送从连接的客户端接收到的消息的服务器应用程序。我们还介绍了

引导( Bootstrap)一在运行时组装 和配置- - 个应用程序的所有组件的过程。

第3章首先讨论了Netty 的技术以及体系结构方面的内容。介绍了该框架的核心组件:Channel、EventLoop、 Channe1Handler以及ChannelPipeline。这一-章的最后解释了引导服务器和客户端之间的差异。

第4章讨论了网络传输,并且对比了通过JDK API和Netty使用阻塞和非阻塞传输的用法。我们研究了Netty的传输API的底层接口的层级关系以及它们所支持的传输类型。

第5章专门介绍了该框架的数据处理API一ByteBuf, Netty 的字节容器。我们描述了它相对于JDK的ByteBuffer的优势,以及如何分配和访问由ByteBuf所使用的内存。我们展示了如何通过引用计数来管理内存资源。

第6章重点介绍了核心组件Channel Handler和ChannelPipeline,它们负责调度应用程序的处理逻辑,并驱动数据和事件经过网络层。其他的主题包括在实现高级用例时ChannelHandlerContext的角色,以及在多个ChannelPipeline之间共享ChannelHandler的缘由。这一-章的最后说明了如何处理由人站事件和出站事件所触发的异常。

第7章提供了关于线程模型的- -般概述,并详细地介绍了Netty的线程模型。我们研究了interface EventLoop,它是Netty 的并发API的主要部分,并解释了它和线程以及Channel的关系。这个信息对于理解Netty是如何实现异步的、事件驱动的网络编程模型来说至关重要。我们展示了如何通过EventLoop进行任务调度。

第8章以介绍Bootstrap类的层级结构作为引子,深人地讲解了引导。我们重新审视了一些基本用例以及-些特殊用例,例如,在- -个服务器应用程序中引导-个客户 端连接、引导数据报Channel,以及在引导的过程中添加多个Channe1Handler。这一章最后讨论了如何优雅地关闭应用程序并有序地释放所有的资源。

第9章是关于对ChannelHandler进行单元测试的讨论,对此Netty 提供了一个特殊的Channel实现一EmbeddedChannel。 本章的示例展示了如何使用这个类和JUnit 一起来测试人站和出站ChannelHandler实现。

第二部分:编解码器

数据转换是网络编程中最常见的操作之一。第二部分介绍了Netty 提供的用于简化这一任务的丰富的工具集。

第10章首先解释了解码器和编码器,它们将字节序列从一种格式转换为另外一种格式。一个无处不在的例子便是将--个非结构化的字节流转换为--个特定于协议的布局结构,或者相反的。编解码器则是一个结合了编码器以及解码器以处理双向转换的组件。我们提供了几个例子,展示了通过Netty的编解码器框架类创建自定义的解码器以及编码器是多么地容易。

第11章研究了Netty提供的用于各种用例的编解码器以及ChannelHandler。这些类包括用于协议的(如SSL/TLS、HTTP/HTTPS、WebSocket 以及SPDY )即用型的编解码器,以及能够通过扩展来处理几乎任意的基于分隔符的协议、变长协议或者定长协议的解码器。这一章的最后介绍了用于写人大型数据的和用于序列化的框架组件。

第三部分:网络协议

第三部分详细阐述了几种本书前面简要介绍过的网络协议。我们将会再次看到Netty是如何使你能在自己的应用程序中轻松采用复杂的API,而又不必关心其内部复杂性的。

第12章展示了如何使用WebSocket协议来实现Web服务器和客户端之间的双向通信。示例程序是一个聊天室服务器,其允许所有已连接的用户与其他已连接的用户进行实时通信。

第13章通过利用了用户数据报协议(UDP)的广播能力的服务器和客户端应用程序,说明了Netty 对于无连接协议的支持。如同前面的那些示例-样,我们使用了一组特定于协议的支持类: DatagramPacket和NioDatagr amChannel。

第四部分:案例研究

第四部分介绍了由使用Netty实现了任务关键型系统的知名公司提交的5份案例研究。这些案例不仅说明了我们在整本书中所讨论过的框架各个组件在现实世界中的应用,而且还演示了Netty的设计以及架构原则,在构建高度可伸缩和可扩展的应用程序方面的应用。

第14章有Droplr、Firebase 以及Urban Airship提交的案例研究。

第15章有Facebook和Twitter提交的案例研究。

Netty权威指南

本文是异步非阻塞通信领域的经典之作,基于最新版本Netty 5.0 编写,是国内首本深入介绍Netty原理和架构的技术文档,也是作者多年实战经验的总结和浓缩。

内容包含基础功能、高级应用、系统架构、源码分析和行业应用,深入阐述了Java 1/O 的Netty NIO开发、Netty 编解码开发、Netty多协议开发等各方面的技术要点,包含了对源码的深刻解读,并且对Netty的应用现状和未来趋势进行分析,旨在帮助从业人员提升自我,更快更明确地发展职业道路。

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

Netty项目白皮书

Netty实战+项目白皮书+视频

需要的小伙伴可以转发关注小编,↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

重磅!阿里P8费心整理Netty实战+指南+项目白皮书PDF,总计1.08G的更多相关文章

  1. 学习TF:《TensorFlow机器学习实战指南》中文PDF+英文PDF+代码

    从实战角度系统讲解TensorFlow基本概念及各种应用实践.真实的应用场景和数据,丰富的代码实例,详尽的操作步骤,带你由浅入深系统掌握TensorFlow机器学习算法及其实现. <Tensor ...

  2. 阿里P8大佬熬夜10天,把所有Android第三方库整理成了PDF

    缘起 随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑.快速迭代的目的越来越难,还有应用之间的互相调用等等问题,插件化技术应用而生.如果没有插件化技术,美团. ...

  3. 阿里 P8 高级架构师吐血总结的 《Java 核心知识整理&面试.pdf》| 免费分享

    最近在网上发现一份非常棒的 PDF 资料,据说是阿里 P8 级高级架构师吐血总结的, 其中内容覆盖很广,包括 Java 核心基础.Java 多线程.高并发.Spring.微服务.Netty 与 RPC ...

  4. Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战

    转: Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战 Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一 ...

  5. 阿里P8整理Mysql面试题答案,助你“脱颖而出”,吊打面试官!(建议收藏)

    前言 作为一名开发人员,每天英高都在和数据库进行着斗智斗勇,尤其是互联网行业,对MySQL的使用是比较多的.同样的,因为mysql的重要性以及普及性,在面试的时候一定是一个面试的重点或者说常问问题,说 ...

  6. Netty权威指南

    Netty权威指南(异步非阻塞通信领域的经典之作,国内首本深入剖析Netty的著作,全面系统讲解原理.实战和源码,带你完美进阶Netty工程师.) 李林锋 著   ISBN 978-7-121-233 ...

  7. 《Netty权威指南》

    <Netty权威指南> 基本信息 作者: 李林锋 出版社:电子工业出版社 ISBN:9787121233432 上架时间:2014-5-29 出版日期:2014 年6月 开本:16开 页码 ...

  8. netty学习指南

    这段时间领导让我熟悉Socket开发,我花了三周时间左右去学习相关的知识,包括Java socket开发,重点学习了netty这个异步非阻塞通信框架. 在这里把我学习过程中遇到的有用资料整理了,供大家 ...

  9. 《Netty 权威指南(第2 版)》目录

    图书简介:<Netty 权威指南(第2 版)>是异步非阻塞通信领域的经典之作,基于最新版本的Netty 5.0 编写,是国内很难得一见的深入介绍Netty 原理和架构的书籍,也是作者多年实 ...

随机推荐

  1. VB中使用字典存储类对象

    2019独角兽企业重金招聘Python工程师标准>>> NODE类 Public pNext As NODE Public pPrev As NODE Public data As ...

  2. 疯子的算法总结(九) 图论中的矩阵应用 Part 1+POJ3613 Cow Relays

    图的存储有邻接矩阵,那么他就具备一些矩阵的性质,设有一个图的demo[100][100];那么demo[M][N]就是M—>N的距离,若经过一次松弛操作demo[M][N]=demo[M][K] ...

  3. python 安装模块之pip install +模块名的换源写法

    1.采用国内源,加速下载模块的速度2.常用pip源(上一篇博客介绍过):– 豆瓣:https://pypi.douban.com/simple– 阿里:https://mirrors.aliyun.c ...

  4. Jenkins联动码云自动匹配分支进行构建流水线

    一.安装Generic Webhook Trigger插件 二.创建项目 创建项目之前先准备自己的项目,如果没有可以我fork的一个项目.地址是:https://gitee.com/jokerbai/ ...

  5. 「newbee-mall新蜂商城开源啦」 前后端分离的 Vue 版本即将开源

    新蜂商城 Vue 版本 2019 年 10 月份我在 GitHub 开源仓库中上传了新蜂商城项目的所有源码,至今已经有小半年的时间了,感兴趣的可以去了解一下这个 Spring Boot 技术栈开发的商 ...

  6. SQLite使用(二)

    sqlite3_exec虽然好用,但是一般不推荐直接使用. 常用的一组操作是: 关于sqlite3_exec和sqlite3_prepare_v2的使用场景,建议如下: 一个小DEMO: #inclu ...

  7. 【FPGA篇章七】FPGA系统任务:详述常用的一些系统函数以及使用方法

    欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 系统任务和系统函数是Verilog标准的一部分,都以字符"$"为开头.系统任务可划分为六类,下面分别给出一些常用任务的用 ...

  8. Openwrt:基于MT7628/MT7688的PWM驱动

    前言 MT7628/MT7688的PWM驱动相关资料较少,官方的datasheet基本也是一堆寄存器,啃了许久,终于嚼出了味道.由于PWM存在IO口复用的问题,所以要提前配置好GPIO的工作方式,不然 ...

  9. CF#214 C. Dima and Salad 01背包变形

    C. Dima and Salad 题意 有n种水果,第i个水果有一个美味度ai和能量值bi,现在要选择部分水果做沙拉,假如此时选择了m个水果,要保证\(\frac{\sum_{i=1}^ma_i}{ ...

  10. JDBC05 ResultSet结果集

    ResultSet结果集 -Statement执行SQL语句时返回ResultSet结果集 -ResultSet提供的检索不同类型字段的方法,常用的有: getString():获得在数据库里是var ...