Netty教程

Netty 从入门到精通 - 完整教程系列

Netty Logo

一套完整的 Netty 学习教程,从零基础到精通

License Netty Version JDK Version

教程目录 | 项目进度 | 快速开始 | 贡献指南


📖 项目简介

本项目是一套从入门到精通的 Netty 完整教程,旨在帮助学习者系统掌握 Netty 框架的核心概念、实战应用和高级特性。

🎯 学习目标

学完本教程,你将能够:

  • ✅ 深入理解网络编程的基础知识(BIO、NIO、AIO)
  • ✅ 掌握 Netty 的核心组件和工作原理
  • ✅ 独立开发高性能的网络应用
  • ✅ 实现复杂的实战项目(IM、RPC、网关、游戏服务器等)
  • ✅ 进行性能调优和问题排查
  • ✅ 阅读和理解 Netty 源码

✨ 项目特色

  • 📚 系统全面:30章核心内容 + 5个附录,涵盖从入门到精通的完整路径
  • 💻 代码丰富:每章配有完整可运行的示例代码,共25个项目
  • 🚀 实战导向:5个大型实战项目,真实场景应用
  • 🔍 源码分析:深入剖析 Netty 核心源码
  • 🛠️ 问题解决:详细的问题排查和最佳实践指南
  • 📝 详细注释:所有代码都有详细的中文注释

📚 教程目录

第一部分:基础入门(1-5章)

第二部分:核心特性(6-10章)

  • 第6章:ByteBuf 缓冲区
  • 第7章:编解码器(Codec)
  • 第8章:粘包与拆包解决方案
  • 第9章:常用协议支持
  • 第10章:EventLoop 与线程模型

第三部分:高级应用(11-15章)

  • 第11章:零拷贝与高性能优化
  • 第12章:心跳检测与空闲连接管理
  • 第13章:流量整形与限流
  • 第14章:Netty 安全机制
  • 第15章:Netty 与 Spring Boot 集成

第四部分:实战项目(16-20章)

  • 第16章:实战项目1 - 即时通讯系统(IM)
  • 第17章:实战项目2 - RPC 框架
  • 第18章:实战项目3 - 网关服务器
  • 第19章:实战项目4 - 游戏服务器
  • 第20章:实战项目5 - 物联网数据采集平台

第五部分:性能调优(21-23章)

  • 第21章:性能监控与诊断
  • 第22章:内存优化
  • 第23章:高并发优化

第六部分:源码分析(24-27章)

  • 第24章:Netty 启动流程源码分析
  • 第25章:EventLoop 源码分析
  • 第26章:Pipeline 与 Handler 源码分析
  • 第27章:ByteBuf 与内存管理源码分析

第七部分:问题排查与最佳实践(28-30章)

  • 第28章:常见问题排查
  • 第29章:生产环境最佳实践
  • 第30章:Netty 4.x vs 5.x 对比与迁移

附录

  • 附录A:Netty API 速查手册
  • 附录B:开发环境配置
  • 附录C:性能调优检查清单
  • 附录D:常用工具推荐
  • 附录E:参考资源

完整目录查看详细目录


🚀 快速开始

环境要求

  • JDK:8 或更高版本
  • Maven:3.x
  • IDE:IntelliJ IDEA 或 Eclipse(推荐 IDEA)

第一个 Netty 程序

  1. 克隆项目
git clone https://github.com/your-repo/netty-tutorial.git
cd netty-tutorial
  1. 运行 Hello World 示例
cd 项目代码/chapter01-hello-world
mvn clean compile

# 启动服务端
mvn exec:java -Dexec.mainClass="com.netty.tutorial.hello.HelloWorldServer"

# 新开一个终端,启动客户端
mvn exec:java -Dexec.mainClass="com.netty.tutorial.hello.HelloWorldClient"
  1. 在客户端输入消息
请输入消息(输入'quit'退出):
Hello Netty!

服务端会回复:服务器收到: Hello Netty!

使用 IDE 运行

  1. 导入项目:File → Open → 选择项目目录
  2. 等待 Maven 依赖下载完成
  3. 运行服务端:右键 HelloWorldServer.java → Run
  4. 运行客户端:右键 HelloWorldClient.java → Run

📦 项目结构

netty-tutorial/
├── README.md                           # 项目说明
├── Netty教程目录.md                    # 完整教程目录
├── 项目进度.md                         # 项目进度跟踪
├── 第一部分-基础入门/
│   ├── 第1章-Netty简介与环境搭建.md
│   ├── 第2章-网络编程基础.md
│   ├── 第3章-Netty核心组件.md
│   ├── 第4章-Bootstrap启动器.md
│   └── 第5章-ChannelHandler详解.md
├── 第二部分-核心特性/
│   ├── 第6章-ByteBuf缓冲区.md
│   ├── 第7章-编解码器.md
│   ├── 第8章-粘包与拆包解决方案.md
│   ├── 第9章-常用协议支持.md
│   └── 第10章-EventLoop与线程模型.md
├── 第三部分-高级应用/
│   └── ...
├── 第四部分-实战项目/
│   └── ...
├── 第五部分-性能调优/
│   └── ...
├── 第六部分-源码分析/
│   └── ...
├── 第七部分-问题排查与最佳实践/
│   └── ...
├── 附录/
│   └── ...
└── 项目代码/
    ├── chapter01-hello-world/          # 第1章示例代码
    ├── chapter02-nio-basics/           # 第2章示例代码
    ├── chapter03-core-components/      # 第3章示例代码
    └── ...

📊 学习路径

🌱 初学者(0-2个月)

目标:掌握 Netty 基础知识,能够编写简单的网络应用

学习内容

  • 第一部分:基础入门(1-5章)
  • 第二部分:核心特性(6-10章)

实践项目

  • Hello World 服务器
  • Echo 服务器
  • 简单的聊天室

🚀 进阶者(2-4个月)

目标:掌握 Netty 高级特性,能够开发复杂的网络应用

学习内容

  • 第三部分:高级应用(11-15章)
  • 第四部分:实战项目(16-20章)

实践项目

  • 即时通讯系统
  • RPC 框架
  • API 网关

🔥 高级开发者(4-6个月)

目标:精通 Netty,能够进行性能调优和源码分析

学习内容

  • 第五部分:性能调优(21-23章)
  • 第六部分:源码分析(24-27章)

实践项目

  • 高性能游戏服务器
  • 物联网数据采集平台
  • 百万并发优化

🏆 专家级(持续学习)

目标:成为 Netty 专家,能够解决生产环境的各种问题

学习内容

  • 第七部分:问题排查与最佳实践(28-30章)
  • 参与开源项目
  • 实际项目经验积累

💻 配套代码

每章都配有完整的示例代码,所有代码都:

  • 可直接运行:无需修改即可运行
  • 详细注释:关键代码都有中文注释
  • 单元测试:核心功能都有测试用例
  • README 文档:每个项目都有独立的说明文档
  • 最佳实践:代码遵循 Netty 最佳实践

已完成的项目

  • chapter01-hello-world - Hello World + Echo 服务器
  • chapter02-nio-basics - BIO/NIO/Netty 对比
  • chapter03-core-components - 核心组件示例
  • …(共25个项目)

📈 项目进度

  • 总章节数:30章 + 5个附录 = 35个文档
  • 已完成:2章
  • 完成率:5.7%
  • 最后更新:2025-12-26

详细进度请查看:项目进度.md


🤝 贡献指南

欢迎贡献!如果你发现了错误或有改进建议,请:

  1. Fork 本项目
  2. 创建你的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

贡献类型

  • 🐛 修复错误
  • 📝 改进文档
  • 💡 添加示例
  • ✨ 新增功能
  • 🎨 改进代码质量

📝 版本历史

v0.1.0 (2025-12-26)

  • ✅ 项目启动
  • ✅ 完成教程目录设计
  • ✅ 完成第1章:Netty 简介与环境搭建
  • ✅ 完成第2章:网络编程基础
  • ✅ 创建 chapter01-hello-world 项目代码

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


🙏 致谢


📞 联系方式


⭐ Star History

如果这个项目对你有帮助,请给一个 ⭐️ Star!


Happy Learning! 祝学习愉快! 🎉

Made with ❤️ by Netty Tutorial Team