导图社区 Netty
这是一篇关于Netty的思维导图,netty基本知识的相关总结,面试的基本知识一目了然。可供大家参考。
这是一篇关于JVM的思维导图,JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
这是一篇关于Mybatis的思维导图,Java开发中常用SSM(Spring,SpringMVC,Mybatis)组合中的Mybatis框架的使用要点
这是一篇关于Mysql的思维导图,MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
社区模板帮助中心,点此进入>>
安全教育的重要性
个人日常活动安排思维导图
西游记主要人物性格分析
17种头脑风暴法
如何令自己更快乐
头脑风暴法四个原则
思维导图
第二职业规划书
记一篇有颜又有料的笔记-by babe
伯赞学习技巧
Netty
Netty 主要基于主从 Reactors 多线程模型(如下图)做了一定的修改,其中主从 Reactor 多线程模型有多个 Reactor: 1)MainReactor 负责客户端的连接请求,并将请求转交给 SubReactor; 2)SubReactor 负责相应通道的 IO 读写请求; 3)非 IO 请求(具体逻辑处理)的任务则会直接写入队列,等待 worker threads 进行处理。
JavaIO模型
BIO
同步阻塞
NIO
非阻塞
channel
buffer
selector
AIO
异步非阻塞
概述
异步事件驱动框架
封装jdk底层BIO和nio模型
自带编码解码器
架构设计
传输服务
容器集成
OSGI
JBossMC
Spring
Guice
协议支持
http
二进制
文本
WebSocket等
Core核心
可拓展事件模型
通用通信API
零拷贝ByteBuffer缓存对象
模块组件
BootStrap
客户端引导开始
ServerBootstrap
服务端引导开始
Future
ChannelFuture
注册监听,等待执行结果自动触发
Channel
网络通信的组件,能够用于执行网络 I/O 操作
Selector
Netty 基于 Selector 对象实现 I/O 多路复用,通过 Selector 一个线程可以监听多个连接的 Channel
NioeventLoop
维护了一个线程和任务队列,支持异步提交执行任务,线程启动时会调用 NioEventLoop 的 run 方法,执行 I/O 任务和非 I/O 任务
NioEventLoopGroup
NioEventLoopGroup,主要管理 eventLoop 的生命周期,可以理解为一个线程池,内部维护了一组线程,每个线程(NioEventLoop)负责处理多个 Channel 上的事件,而一个 Channel 只对应于一个线程
ChannelHandler
是一个接口,处理 I/O 事件或拦截 I/O 操作,并将其转发到其 ChannelPipeline(业务处理链)中的下一个处理程序
ChannelHandlerContext
保存 Channel 相关的所有上下文信息,同时关联一个 ChannelHandler 对象
ChannelPipline
保存 ChannelHandler 的 List,用于处理或拦截 Channel 的入站事件和出站操作
工作架构图