资讯动态

Netty学习笔记03、Netty组件学习

发布时间:2026/10/18 11:01:22 来源:尧图企业网站定制
文章目录前言一、认识Netty1.1 Netty 是什么?1.2 Netty 的作者1.3 Netty 的地位1.4 Netty 的优势二、netty入门程序HelloWorld!2.1、netty入门:客户端-服务端 helloworld2.1.1、服务端2.1.2、客户端2.2、流程梳理2.3、netty-helloworld的各个组件通俗介绍三、组件3.1、EventLoop3.1.1、认识EventLoop和EventLoopGroup3.1.2、执行普通、定时任务3.1.3、执行IO任务(含2点细化)3.1.3、源码分析(不同eventLoop,线程如何切换)3.2、channel3.2.1、介绍Channel、ChannelFuture3.2.2、连接问题3.2.3、ChannelFuture的实际应用3.2.3.1、处理连接操作(两种方式:同步、异步)3.2.3.2、处理关闭channel连接操作与eventloop(两种方式:同步、异步)3.2.3.3、同步与异步解决方案区别为什么netty要用异步?异步提升了什么?3.3、Future Promise3.3.1、介绍Future与Promise3.3.2、JDK的Future示例(线程间取值)3.3.3、netty的Future示例(同步、异步)3.3.4、netty的promise示例3.4、handler pipeline3.4.1、入站、出站handler执行顺序3.4.2、InBoundHandler案例(加工数据)3.4.3、OutBoundHandler案例(不同对象发出数据效果不一致)3.5、EmbeddedChannel(快速测试入站、出站handler业务)3.6、ByteBuf3.6.1、创建3.6.2、直接内存 vs 堆内存3.6.3、池化 vs 非池化3.6.4、ByteBuf组成3.6.5、写入3.6.5、扩容3.6.7、读取3.6.8、retain release (释放ByteBuf)3.6.8.1、释放分析3.6.8.2、源码分析(head、tail)3.6.8、零拷贝3.6.8.1、slice:切割3.6.8.2、duplicate:整块3.6.8.3、copy:深拷贝(非零拷贝)3.6.8.4、CompositeBuffer:组装ByteBuf3.6.8.5、工具类Unpooled(提供了非池化的 ByteBuf 创建、组合、复制等操作)3.6.9、ByteBuf优势汇总案例、回显服务器(双向通信)描述+code(netty)扩展:读写误解解答(含socket实现)参考文章前言本文是付费专栏《Java后端开发从入门到进阶》的配套文章,所属阶段与专题为「阶段四:Java主流框架应用 / 4.5 Netty」。前两篇把 NIO 的地基打好,从本篇开始正式进入 Netty 的组件世界。专栏介绍:适合 Java 初学者及希望系统查漏补缺的开发者。专栏不仅讲“怎么用”,还会深入源码与底层原理,结合真实开发场景和代码案例,帮助你建立完整的 Java 技术知识体系。本文从 Netty 的定位与作者讲起,先跑通 HelloWorld 入门程序,再逐个拆解 EventLoop、Channel、Future 与 Promise、Handler 与 Pipeline、ByteBuf 这些核心组件,理解它们如何配合完成一次网络请求。本文所属付费专栏目录:Java后端开发从入门到进阶整体专栏目录汇总一、认识Netty1.1 Netty 是什么?Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance proto

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑