netty相关知识

netty内部架构原理
1.reactor模式:反应器模式/分发者模式/通知者模式
多个client都给一个Servicehanlder阻塞对象,然后再分给多个线程eventHandler去处理,这样不用每个client都建一个serviceHandler阻塞对象.
(基于事件驱动),服务器端程序处理传入多个客户端请求,并将他们同步分派到相应的线程处理
reactor使用IO复用监听事件,收到事件后,分发给某个线程处理,这个就是网络编程并发处理关键。
2.
单reactor单线程;一个serviceHandler,一个eventHandler处理响应和业务处理。
单reactor多线程:一个serviceHandler分发不同的eventHandler(多个eventHandler),eventHandler只负责响应事件,不做业务处理,通过Read读取到数据后,分配给worker线程处理业务(多个worker线程)
主从reactor多线程:serviceHandler分mainReactor和subReactor,mainReactor只负责监听建立链接然后分发给subReactor;subReactor负责监听相应其他事件并返回数据给client,然后再继续分配给eventHandler,再分给worker线程处理业务。

netty模型:
1.BossGroup线程池专门负责接收客户端的链接
2.WorkGroup专门负责网络数据的读写
3.BossGroup,WorkGroup类型都是NioEventLoopGroup事件循环组
4.NioEventLoop表示一个循环的执行处理任务的线程,每个NioEventLoop都有一个selector,用户监听绑定其上的socket的网络通信
5.每个Boss NioEventLoop的执行步骤:
1.轮询accept事件
2.处理accept事件,与client建立链接,生成NioSocketChannel,并将其注册到某个workNioEventLoop上的selector,处理任务队列的任务,即runAllTasks
6.每个work NioEventLoop的执行步骤
1.轮询read,write事件
2.处理I/O事件,即Read,write事件,在对应nioSocketChannel处理任务队列任务,即runAllTasks
7.每个workeventloop处理业务时,会使用pipeline(管道),pipeline中包含了channel,即通过pipeline可以获取对应的管道,管道中维护了多个处理器
8.protobuf,客户端和服务端跨平台多语言间的通信中间件工具
网络通信时,都需要将不同的的对象数据转换成"字节"byte才能传输。
9.netty 入站出站,socketserver为中心;各种不同的编码器,加解密进行传输
10.handler是链的形式进行步骤执行方法pipeline
12.Tcp粘包拆包:将一个小的数据包通过优化算法(nagle算法)进行合并给接收方,但是也要标识合并的大包的开始和结束。
服务器是一次性接受数据是随意的,若是连续的发送,那么就要自定义接受数据的开始和结束
13.netty心跳机制是用的内部类的定时任务在操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值