Netty事件传播机制

本文探讨了Netty中事件的传播过程,从源码层面分析了读写事件的顺序,如read事件触发in1、in2,write事件触发out2、out1。同时,详细列举了由head和tail开始传播的事件,分别涉及InboundHandler和OutboundHandler关心的不同事件类型。通过参考多个CSDN博客,深入理解Netty的内在机制。
摘要由CSDN通过智能技术生成

文章目录


源码

在这里插入图片描述

在这里插入图片描述

栗子

ch.pipeline().addLast(new InboundHandler1());  
ch.pipeline().addLast(new InboundHandler2()); 
ch.pipeline().addLast(new OutboundHandler1());  
ch.pipeline().addLast(new OutboundHandler2());

链表中的顺序为head->in1->in2->out1->out2->tail

输出:

InboundHandler1 
InboundHandler2 
OutboundHandler2
OutboundHandler1

一次请求过来,先read,再write,根据顺序

read : in1 in2
write: out2 out1

所以最后的顺序就是 in1 in2 out 2 out1

在这里插入图片描述

在这里插入图片描述

拾遗


由head开始的往下传播的事件
fireChannelActive
fireChannelInactive
fireExceptionCaught
fireChannelRead
fireChannelReadComplete
…等等

由tail开始的往上传播的事件
bind
connect
write
flush
…等等


InboundHandler关心的事件:
MASK_EXCEPTION_CAUGHT
MASK_CHANNEL_REGISTERED
MASK_CHANNEL_ACTIVE
MASK_CHANNEL_READ
MASK_CHANNEL_READ_COMPLETE
…等等

OutboundHanlder关心的事件:
MASK_EXCEPTION_CAUGHT
MASK_BIND
MASK_CLOSE
MASK_READ
MASK_WRITE
MASK_FLUSH
…等等

参考:
https://blog.csdn.net/zhengchao1991/article/details/103583766
https://blog.csdn.net/qq_41737716/article/details/94734196
https://blog.csdn.net/zhengchao1991/article/details/103583766

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值