从 0 带你写 Netty- 掘金小册课程推荐/优惠

从 0 带你写 Netty--掘金小册课程推荐/优惠

渐进式源码剖析,助你精通 Netty 框架
陈清风扬
34讲 | 1205人已学习
优惠价¥59.9
官网优惠购买
版权声明

本站非掘金小册官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。

课程详情

课程介绍

【课程资料领取】

购买小册后,戳上方加群 icon,进入专属交流群,领取课程配套资料~

你将获得

  1. 掌握 Netty 的核心运行流程,可以对其进行二次开发;

  2. 掌握多种高性能数据结构、算法和优化策略,以及设计模式的使用思想;

  3. 掌握池化技术,体会无锁化思想,增强自身内功修炼;

  4. 对并发编程有更深的理解和体会,可以借鉴 Netty 的异步模式,设计并发任务的执行方案;

  5. 基于 Netty 构建其他高性能的网络框架;

  6. 能快速定位 Netty 项目中的 BUG 和故障;

  7. 通过 Netty 理解编程思想的应用,为今后学习其他框架源码打下基础。

作者介绍

陈清风扬,某互联网公司后端团队技术负责人,负责公司海外线上培训项目,及 Clare Chatbot 聊天机器人项目。热爱编程,喜欢钻研技术,尤其喜欢钻研各种框架源码,对 Java 后端相关的流行框架都有过深入研究,如 Spring、MyBatis、Redis 等等。

小册介绍

你见过手写 Netty 吗?

可能见过,可能几分钟前刚刚见过。

但你见过足足 20 个版本的手写 Netty 代码吗?

在网络编程中,Netty 一般是大家首选的通信框架。它性能十分优秀,功能也非常丰富,使用起来却很简单。但是,想要真正精通 Netty 并不容易。

首先,想要入门 Netty,网上有很多免费的学习资料供我们选择,但它们大多比较零碎不全面,还需要我们耗时去搜集补充。

其次,很多关于 Netty 的教学资料都是以分析源码的方式讲解的,但经常是当时看懂了,过段时间忘了再看,再看再忘,总感觉没有掌握透。

最后,很多人自学源码之后,只知道 Netty 是这么设计编写的,要这么设计编写,却不知道为什么,而这恰恰是我们最应该掌握的。

我认为,学习一个框架最好的方法就是仿写一个。 因此,这本小册将在源码剖析的基础上,带大家手写一个 Netty。那么,这个手写有什么特别之处呢?

我们会通过由浅入深的方式,系统讲解、归纳 Netty 中所有有价值的知识点。比如异步与回调的编程思想、各种设计模式、Reactor 线程模型、各种高性能的数据结构、时间轮、对象池、内存分配、内存池、内存泄漏检测,编解码等等。

随着学习的不断深入,我们每一个阶段都会手写一版 Netty,不断为其增加新的功能,由简到繁,最终实现一个完整的 Netty(和 Netty 源码一致)。总的来说,代码一共会有 20 个版本,每一个版本中的所有类的所有方法都会有详细注释,学习曲线十分平缓。

同时,我也会通过一些小例子循序渐进的引导大家,讲清楚 Netty 为什么是这样编写,而不是直接告诉大家就这样写。最终,通过一步一步实现、对比不同版本的 Netty,帮助大家真正掌握 Netty。

基于此,小册从内容上可以划分为 3 个模块。

  1. 基础结构篇:第 1 到第 7 节。详细分析 Netty 的基础结构、类和接口的关系,搭建最基础的架子。在这个模块大家可以深刻体会那些最基础的编程思想,是怎么在框架中发挥作用的。

  2. 流程详解篇:第 8 到第 16 节。基于搭好的架子填充各种内容,使它真正丰满起来。在这个模块大家会学到一些数据结构和设计模式的运用方式,彻底掌握 Netty 的运行流程。掌握了这个模块的内容,在工作中定位 bug,甚至是对 Netty 进行二次开发,都能游刃有余。

  3. 性能优化篇:第 17 到第 34 节。会在之前的基础上,对一些重要方法进行重构和优化,并且引入新的知识体系。这个模块是课程的重中之重。高性能无锁队列、时间轮、对象池、内存分配、内存池都会在这一部分得到实现。

以下是小册核心内容的思维导图:

最后,我们这本小册,是以渐进的方式手写 Netty 框架,会从最基础的 Reactor 线程模型讲到复杂的内存池实现,希望我的这种写作方式能被大家认可,真正帮助到有需要的人!

适宜人群

  1. RPC 框架开发、服务器开发以及消息中间件开发的从业者;
  2. 掌握基础并发编程和 BIO、NIO 知识,想进阶学习的开发者;
  3. 只熟悉 Netty 简单使用,想全面了解 Netty 内部架构的开发者;
  4. 常年 CRUD,对 Java 编程、网络编程和操作系统底层知识了解不深入,想要深入学习的开发者。

课程目录

  • Netty 的参数配置:引入 ChannelConfig,掌握 option 参数配置原理
  • Netty 的异步与回调:引入 Promise,实现线程间通信(一)
  • Netty 的本质 : 如何提升 NIO 服务端的工作效率?
  • Netty 的骨架:掌握 EventLoop,EventExecutor,Group 的关系
  • Netty 的核心:理解 Reactor 线程模型
  • Netty 的数据处理:引入 ChannelPipeline,完善 ChannelPipeline 体系(四)
  • Netty 的异步与回调:添加监听器方法,实现异步回调(二)
  • Netty 的通信工具:引入 Channel,完善 Channel 体系
  • Netty 的保护机制:引入 Unsafe,初步实现收发数据
  • Netty 的数据处理:引入 ChannelPipeline,完善 ChannelPipeline 体系(三)
  • Netty 的数据共享:引入 AttributeMap,实现 Channel 的 Map 功能
  • Netty 线程的私有容器:引入 FastThreadLocal 体系,掌握其设计原理
  • Netty 的数据处理:引入 ChannelPipeline,完善 ChannelPipeline 体系(一)
  • Netty 的数据处理:引入 ChannelPipeline,完善 ChannelPipeline 体系(二)
  • Netty 连接的检测:引入 IdleStateHandler,实现心跳检测
  • Netty 的定时任务:完善定时任务体系,重构 connect 方法
  • Netty 的时间轮:引入 HashedWheelTimer,学习时间轮中的数据结构
  • Netty 的消息解析:引入编解码器,解决粘包半包,正确解析消息
  • Netty 中对象的复用:引入对象池,掌握对象池的执行流程(二)
  • Netty 的数据容器:引入 ByteBuf,学习 ByteBuf 的设计原理
  • Netty 中对象的复用:引入对象池,掌握对象池的设计理念(一)
  • Netty 的内存优化:详解 Netty 的内存分配(一)
  • Netty 的内存优化:写完内存池,完全掌握 Netty 中的池化技术
  • Netty 内存的检测:运用弱引用,实现 Netty 的内存泄漏检测(二)
  • Netty 的内存优化:详解 Netty 的内存分配(二)
  • Netty 的内存优化:详解 Netty 的内存分配(三)
  • Netty 连接的关闭:优雅停机和释放资源(一)
  • Netty 内存的检测:运用弱引用,实现 Netty 的内存泄漏检测(一)
  • Netty 的 IO 处理:重写 NioEventLoop,学习 Netty 处理 IO 事件全流程
  • Netty 的 write 事件:重构 writeAndFlush 方法,完善细节,详解 Netty 发送数据流程(一)
  • Netty 内存的动态分配:重构 read 方法,池化技术的运用和实践
  • Netty 的 flush 事件:重构 writeAndFlush 方法,完善细节,详解 Netty 发送数据流程(二)
  • 结束语
  • Netty 连接的关闭:优雅停机和释放资源(二)

作者介绍

后端开发工程师
掘金小册《从零带你写Netty》作者,也是从零带你写框架系列作者,整个系列包括netty,xxl-job,spring,rocketmq,nacos,javac和虚拟机等等。公众号:陈清风扬写框架

推荐

技术写作指南 - 掘金小册课程推荐/分享/优惠/折扣
技术写作指南
十余年写作经验倾囊相授,全面提升你的技术写作能力!
张鑫旭
3436人已学习
优惠价¥19.9
掘金小册官网优惠购买
深入浅出 DDD - 掘金小册课程推荐/分享/优惠/折扣
深入浅出 DDD
从基础概念到落地实践,带你领略自顶向下的业务驱动架构,击碎老旧代码、复杂业务维护困难的噩梦。
柏炎
2350人已学习
优惠价¥29.9
掘金小册官网优惠购买
基于 Kafka Connect 的异构数据流式同步平台实战 - 掘金小册课程推荐/分享/优惠/折扣
基于 Kafka Connect 的异构数据流式同步平台实战
从0到1,搭建工业级可用、支持轻量级ETL的异构数据双向流式同步低代码平台
甘罗
800人已学习
优惠价¥29.9
掘金小册官网优惠购买
基于 Stencil 构建 Web Components 组件库 - 掘金小册课程推荐/分享/优惠/折扣
基于 Stencil 构建 Web Components 组件库
使用 Stencil ,让你的组件 Write once,Run anywhere !
Super_x
877人已学习
优惠价¥29.9
掘金小册官网优惠购买
分布式IM原理与实战: 从0到1打造即时通讯云 - 掘金小册课程推荐/分享/优惠/折扣
分布式IM原理与实战: 从0到1打造即时通讯云
带你从0到1实现一套与融云或环信类似的即时通讯IM系统
逆水
2315人已学习
优惠价¥49.9
掘金小册官网优惠购买
区块链开发入门:从 0 到 1 构建基于以太坊智能合约的 ICO DApp - 掘金小册课程推荐/分享/优惠/折扣
区块链开发入门:从 0 到 1 构建基于以太坊智能合约的 ICO DApp
写给前端开发者的第一本区块链开发入门指南,通过 DApp 开发实战(基于以太坊创始人 V 神的 DAICO 设计思想),深入掌握区块链及以太坊技术
王仕军
2079人已学习
优惠价¥69
掘金小册官网优惠购买