JavaDriver JavaDriver
首页
  • 基础
  • 并发
  • JVM
  • 设计模式
  • 计算机网络
  • 操作系统
  • 数据结构
  • 算法
  • MYSQL
  • REDIS
  • Netty
  • Kafka
系统设计
非技术
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YoungAnn

西二旗Java老司机一枚 致力于社会主义添砖Java
首页
  • 基础
  • 并发
  • JVM
  • 设计模式
  • 计算机网络
  • 操作系统
  • 数据结构
  • 算法
  • MYSQL
  • REDIS
  • Netty
  • Kafka
系统设计
非技术
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Netty

    • Netty
    • TCP粘包拆包问题的解决之道
    • Netty中有哪些解码器?
    • 为什么Netty要自己写一个ByteBuf
    • ChannelPipeline和ChannelHandler
      • ChannelPipeline和ChannelHandler
      • 17.1 ChannelPipeline的功能说明
      • 17.1 ChannelPipeline源码
    • EventLoop和EventLoopGroup
    • Java NIO了解吗?
  • Kafka

  • 中间件
  • Netty
YoungAnn
2022-05-21
目录

ChannelPipeline和ChannelHandler

# ChannelPipeline和ChannelHandler

ChannelPipeline是对Channel的封装,ChannelPipeline持有时间拦截器ChannelHandler的链表,由ChannelHandler对I/O事件拦截和处理,可以通过新增和删除ChannelHandler来实现不同业务的逻辑定制。

# 17.1 ChannelPipeline的功能说明

ChannelPipeline是ChannelHandler的容器,负责ChannelHandler的管理和事件拦截 17.1.1 ChannelPipeline的事件处理 Netty中的事件分为inbound和outbound事件 inbound事件通常由IO线程触发,如tcp连接建立、断开、异常通知等 outbound事件通常是由用户主动发起的网络IO操作,如用户发起的绑定本地地址,发送消息等 17.1.2 自定义拦截器 通常ChannelHandler只需要继承ChannelHandlerAdapter类覆盖自己关心的方法即可。 17.1.3 ChannelPipeline的主要特性 ChannelPipeline支持动态添加或者删除ChannelHandler。使用场景(业务高峰期加入拥塞保护ChannelHandler,高峰过后删掉ChannelHandler)。 ChannelPipeline是线程安全的,但是ChannelHandler不是线程安全的。

# 17.1 ChannelPipeline源码

实际上是ChannelHandler 的容器,内部维护了一个ChannelHandler链表和迭代器。

编辑 (opens new window)
上次更新: 2022/05/22, 00:01:01
为什么Netty要自己写一个ByteBuf
EventLoop和EventLoopGroup

← 为什么Netty要自己写一个ByteBuf EventLoop和EventLoopGroup→

最近更新
01
电商-商品系统设计
12-17
02
关于如何写OKR
12-09
03
对事不对人 vs 对人不对事
12-09
更多文章>
Theme by Vdoing | Copyright © 2022-2023 YoungAnnn | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式