首页  

ChannelPipeline和ChannelInitializer     所属分类 netty 浏览量 1198
连接建立成功建立一个 Channel , 分配 一个 ChannelPipeline ,这个关联是永久的
Channel 注册到EventLoop 后 , 调用 ChannelInitializer 的 initChannel方法 添加 handler 

ChannelPipeline 中 handler  的执行顺序
进站事件,先添加的先执行。 
出站事件来说,后添加的先执行。

head 靠近网络端  tail 靠近应用端
入站 从 head 开始处理
出站 从 tail 开始处理

ctx.getPipeline().write()
写入事件从尾端到头部 经过 ChannelPipeline

ctx.write()
消息从下一个ChannelHandler开始传播


Sharable 注解  @Sharable
无状态的 线程安全的 hanlder 可以共享 , 添加到 多个 channel de  pipeline  

ChannelHandlerAdapter
public boolean isSharable() {
        return getClass().isAnnotationPresent(Sharable.class);
}

Return true if the implementation is Sharable and so can be added to different ChannelPipeline s

上一篇     下一篇
netty中的future和promise

netty耗时任务处理

netty4 ChannelInboundHandler 使用

netty ByteBuf 使用

dubbo实例

IO模式 Proactor与Reactor