likes
comments
collection
share

小册上新|Netty 网络编程之道

作者站长头像
站长
· 阅读数 14

Netty 是 Java 开发中不可或缺的组件,无论我们经常使用的服务治理相关组件 Dubbo、SpringCloud,还是大数据组件,比如 Hadoop、Hive 等,可以说在 Java 的世界真的少不了 Netty。

如果你是一个 Java 程序员,你的领导让你维护或者实现一个通信模块,那么 Netty 是必学的核心通信组件,没有之一。 也可以这么说,Netty 目前已经是 Java 网络编程最优秀的网络编程框架了。

这里我们可以简要看看 Netty 都做了什么事情,如下图:

小册上新|Netty 网络编程之道

可以看到,Netty 做了很多事情的,包括:

  • 对 NIO 本身功能的增强;

  • 面向对象的模块化设计;

  • 高效的线程模型;

  • 网络事件处理的异步框架;

  • 对 TCP 拆包粘包的处理。

当然,这个图对 Netty 的功能并没有展示全,但你应该已经可以感觉到 Netty 对于组件灵活度、程序扩展性、面对海量请求的处理等方面做了很多的事情,可以说 Netty 的健壮性和稳定性是不容置疑的

学习 Netty 会遇到哪些困难?

讲了 Netty 的重要性,现在有个问题摆在我们面前(其实学习任何一个新的技术都会遇到这个问题):学习一个新技术的时候,特别是像 Netty 这样的技术组件,总会有一些难度,学得越深,学习曲线就会变得越陡峭。

你在学习 Netty 的时候,肯定遇到过类似下面的问题:

  • 会写 Netty 的 Demo,比如,基于 Netty 的 Server-Client 程序,对 Netty 只是了解使用方式,其背后的原理(为什么这样或那样)并不理解。

  • 自己分明很好学,非常想了解 Netty 的原理和工作机制,却不知道如何开始。

  • 当遇到某个问题,由于好奇心的驱使,想持续地深入学习 Netty 某个功能的时候,在网上通过关键字一搜都是零碎的知识,甚至有的还是错误的,并没有正确系统地讲解自己要研究的功能。最终,信心受到打击不得不放弃,过段时间又遇到这个问题,于是重复这个过程,直到麻木,最终彻底放弃。

  • 当学习一个特性的时候,发现这个特性是基于其他特性发展而来的,或者这个特性与其他特性相关性特别强。于是,又转向学习这些特性,结果造成死循环,直接晕了,最终放弃。

除了以上问题之外,学习 Netty 时也会遇到些“拦路虎”:在使用的过程中不可避免地会涉及一些网络知识,特别是 TCP 协议。比如 TCP 设置参数:TCP_NODELAY、SO_LINGER、SO_SNDBUF、SO_RCVBUF、SO_REUSEADDR、SO_BACKLOG、 SO_KEEPALIVE,等等。可以看到,仅仅是 Netty 与 TCP 相关的参数就能牵扯出很多 TCP 协议的知识,而在我们的实际工作中,出现了网络问题,当我们要定位问题的时候,会通过网络工具抓包,那么这时候更是会考验我们网络协议基础知识的掌握程度。

同时,作为 Netty 的重要基础,Java NIO 也是很重要的,如果连 Buffer、Channel,以及 Java NIO 都不理解,那么要想洞察 Netty 的底层原理那就是痴人说梦!

以上这些都是我们《Netty 网络编程之道》这本小册要解决的问题。

如何以正确的姿势学习?

  1. 从基础讲起

由于 Netty 涉及的底层知识比较多,如果上来就讲解 Netty 的话,势必会造成大家困惑。于是,《Netty 网络编程之道》小册会从底层网络协议给大家讲起,以网络协议为基础再讲解 Java NIO,在这两个模块的基础上再给大家讲解 Netty 的原理与应用就“水到渠成”了。

  1. 图文并茂

由于小册涉及的原理比较多,而且有的原理比较晦涩,如果单纯用文字讲解会造成表达方式过于单一,估计大家也会容易疲倦,所以采用了图文并茂的方式讲解。

比如下面的 TCP 滑动窗口动态变化流程图:

小册上新|Netty 网络编程之道

所以说,如果技术点难以理解,放心,小册一定能通过形象的流程图给你化繁就简地讲解明白。

小册内容设置

下面是我们小册的大纲(可以一眼扫清小册设置的知识要点):

小册上新|Netty 网络编程之道

可以看到,共划分为 三大模块

  • 模块一,夯实网络编程基础知识。该模块会给大家介绍最底层的网络编程基本原理,以及网络通信协议,让大家知道 Java 语言实现的网络通信软件在最底层都做了什么,以及是如何做的。

  • 模块二,详细讲解 Java NIO 的核心组件原理和使用,这会为后面的实践环节和原理剖析打下基础。

  • 模块三,Netty 入门开发与原理介绍。该模块会带领大家实现一个基于 Netty 搭建的生产环境的通信模块,然后再给大家讲解 Netty 各个组件的功能、Netty 的设计原理,包括 Netty 核心组件、Netty 线程模型 Reactor、Netty 高性能缓冲设计、编解码设计,以及如何实现百万级高并发等相关内容的详尽剖析。

作者是谁?

小册上新|Netty 网络编程之道

肖恩Sean,基础架构资深架构师。10 年+ 互联网一线开发经验,先后就职于美团、去哪儿网、京东等大厂。长期从事基础架构中间件研发,特别对于高性能 RPC 和高性能通信有深入理解和实践。参与过自研 RPC 的工作,主导了 RPC 协议设计、服务治理 Mesh 化的落地。同时,对于 Kafka、Netty 等经典中间件也达到了源码级的理解。

掘金小册《Kafka 源码精讲》作者。

谁可以学?

  • 对于入门级程序员来说,搞懂网络原理、学习 Java NIO 各个组件和上手使用 Netty 实现通信软件……这些知识对于入门级 Java 程序员是必须要掌握的。

  • 对于中高级程序员来说,能够通过网络协议的学习和 Netty 原理的讲解,做到网络协议和 Netty 原理的相互印证,这样就会更高效地处理 Netty 使用过程中出现的一系列网络问题。

最低价:上新特惠,限时 6 折中

学完这本小册后,你将能够熟练使用 Netty 进行相关项目的开发、优化及故障处理,并且能够充分理解 Netty 的设计原理,让你收获满满。所以,期待你的加入,我们一起点亮 Netty 的技能树!

4 月 12 日~ 4 月 19 日,上新限时 6 折,原价 ¥39.9,算下来仅需 ¥23.94,现在购买最省钱!!!

赶紧点击下方图片或者扫描海报二维码,一起加入学习吧!

小册上新|Netty 网络编程之道