Netty中ChannelPipeline实际上类似与一条数据管道,负责传递Channel中读取的消息,它本质上是基于责任链模式的设计与实现,无论是IO事件的拦截器,还是用户自定义的ChannelHandler业务逻辑都做为一个个节点被添加到任务链上。
一、ChannelPipeline的设计与构成
ChannelPipeline中作为Netty中的数据管道,作用就是通过控制与联通不同的ChannelHandler,传递Channel中的消息。每一个Channel,都对应一个ChannelPipeline作为ChannelHandler的容器,而ChannelHandlerContext则把ChannelHandler的封装成每个节点,以双向链表方式在容器中存在;我们可以通过下图简单看下它们之间的关系。
1、ChannelHandler
使用过Netty的朋友们都清楚,ChannelHandler就是作为拦截器和业务处理逻辑的存在,它会处理Channel中读写的消息;
首先看下ChannelHandler接口的定义
```
public interface ChannelHandler {
//当ChannelHandler添加到Pipeline中时调用
void handlerAdded(ChannelHandlerContext ctx) throws Exception;
相关文章

线程池面试必考
你对Java线程池了解吗?你有用过线程池吗?那先说下线程池核心参数吧。。。对不起,我回去再看看吧。 为了得体,今天让我们来整理一下面试线索池中的几个面试问题。[En]In order to be de...

【java基础】枚举
public enum Color { Red,Blue,Green; } Color red = Color.Red;//枚举的&a...

JAVA 线程的6种状态
线程状态(Thread.State)。线程处于下列状态的其中之一。 一个线程一次只能有一个状态。这些状态是虚拟机线程状态,不能反映任何操作系统的线程状态。[En]A thread can only h...

Java8 提供的流式操作
参考资料 流式操作 Stream 代表一个支持串行或并行聚集操作的元素序列。 filter filter 生成一个新的 Stream,该 Stream 所有元素都满足 predicate.test =...

实现get/post请求调用第三方接口
使用http协议中的get以及post方式对接第三方平台在工作中很常见,我所展示的已是将方法归纳好,只需要按照对接方案传递对应的参数即可。 下载地址 https://download.csdn.net...

一致性hash算法
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈...

JVM的类加载过程
如果可以,请让我们慢慢了解,慢慢喜欢。 The frog in the well knows nothing of the great ocean. 井底之蛙,不知大海。 JVM 的类加载分为五个阶段...

Linux&Windows查看IP相关
① 查询本机IP 命令行 curl ipinfo.io { "ip": "114.66.43.203", "city": "Bei...

SpringCloud微服务实战——搭建企业级开发框架(三十七):微服务日志系统设计与实现
针对业务开发人员通常面对的业务需求,我们将日志分为操作(请求)日志和系统运行日志,操作(请求)日志可以让管理员或者运营人员方便简单的在系统界面中查询追踪用户具体做了哪些操作,便于分析统计用户行为;系统...

冒泡排序三种方法
import java.util.Arrays; public class GoodBubbleSort { public static void main(String[] args) { int[...

第31章 Spring bean 作用域
I must say a word about fear. It is life's only true opponent. Only fear can defeat life. 在这里,我们必须谈论...

从IO到netty
一、pageCache 1.FileOutputStream与BufferedOutputStream的主要区别 系统调&#x...

springboot-02
Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。 Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。 为了降低Java开发的...

Oracle SQL Developer 安装
参考资料 说在前面 什么是 SQL Developer? window 7 安装步骤 官方推荐配置 1 下载安装包 2 解压 3 启动 其他 1 如何找到其他版本的安装包下载页面? 参考资料 软件首页...

20 HTTP 长连接与短连接
纸上得来终觉浅,绝知此事要躬行。 Never give up until the fight is over. 永远不要放弃,要一直战斗到最后一秒。 长连接 指在一个TCP连接上可以连续发送多个数据包...