netty
2021-09-18 17:29:35 25 举报
netty
作者其他创作
大纲/内容
顺序执行你添加的事件
client1
2048
512
selector
dispatcher
业务处理
handler 2
已使用
Bootstrap
read
reactor
ChannelInboundHandler
部分使用
channel
任务处理
1024
netty的线程模型是基于Reactor模型的。
ChannelHandler
1.创建客户端()
单线程netty模型
handler 1
看看使用情况标记
handler n....
读写操作和业务处理
Reactor主从多线程模型 -区别在于连接操作交给了线程池
acceptor
3.创建NioSocketChannel()
客户端
处理业务逻辑
那该分配给其他小弟做事了
sub reactor
handler
handler 1
再随机抽取一个幸运观众做建立连接之后-io处理之前的操作
boss EventLoopGroup
acceptor n
chunk(默认16mb)
6.注册连接操作位到多路复用器()
ChannelOutboundHandler
事件分发
page(8k)
现在分配512的内存
事件轮询
PoolSubpage
总算找到了一个空位置
内存模型
decode
write
NioEventLoopGroup
2.构造I/O线程组()
8.发送连接成功事件()
encode
这里多了一个线程池处理读写请求和业务逻辑--reactor pool
你去处理一下io
worker 线程池
NioSocketChannel
我建立连接了
work EventLoopGroup
9.调用用户HandlerChannel()
7.Selector轮询()
.....
4.创建Default Pipeline()
channelPipeline(双向链表实现的)_
eventloop
io pool
绑定worker线程
netty小内存
channelHandler
ChannelPipeline
ServerBootstrap
建立连接
这里多了一个线程池处理连接请求 -accept pool
单位:个
5.异步发起TCP连接()
你做点什么认证 白名单 握手 那些杂七杂八的事情吧
handler n
Reactor多线程模型 -区别在于读写操作交给了线程池
向PoolChunk申请的空闲page
随机选一个acceptor建立连接
main reactor
0 条评论
下一页