一个网络请求在 Netty 中的旅行

本文详细解析了网络请求在 Netty 中的处理流程,从事件处理机制回顾开始,深入探讨了 ChannelPipeline 的初始化、添加和删除 Handler 的过程。接着分析了数据在 Pipeline 中如何流转,包括 Inbound 和 Outbound 事件的传播机制,以及异常事件的传播。最后进行了总结,强调了 ChannelPipeline 的结构和事件传播的重要性。
摘要由CSDN通过智能技术生成

Netty 在服务端启动时会为创建 NioServerSocketChannel,当客户端新连接接入时又会创建 NioSocketChannel,不管是服务端还是客户端 Channel,在创建时都会初始化自己的 ChannelPipeline。如果把 Netty 比作成一个生产车间,那么 Reactor 线程无疑是车间的中央管控系统,ChannelPipeline 可以看作是车间的流水线,将原材料按顺序进行一步步加工,然后形成一个完整的产品。本次梳理一遍网络请求在 Netty 中的处理流程,并着重讲解 ChannelPipeline 的工作原理。

事件处理机制回顾

首先我们以服务端接入客户端新连接为例,一起复习下 Netty 的事件处理流程,如下图所示。

在这里插入图片描述
Netty 服务端启动后,BossEventLoopGroup 会负责监听客户端的 Accept 事件。当有客户端新连接接入时,BossEventLoopGroup 中的 NioEventLoop 首先会新建客户端 Channel,然后在 NioServerSocketChannel 中触发 channelRead 事件传播,NioServerSocketChan

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Think_Higher

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值