NIO
什么是高性能
高并发用户 系统外部 用户的引用角度
高吞吐量 系统内部角度 TPS
低延迟
高并发用户 业务指标
高吞吐量 低延迟 技术指标
延迟和响应时间的区别
延迟针对系统
响应针对客户
高性能的副作用
系统复杂度 x10以上
建设与维护成本+++
故障和BUG导致的破坏性x10以上
应对策略
1 容量
当高并发来的时候服务器能否抗的住,吞吐量是否够
2 爆炸半径
当修改了代码,产生bug,确定影响的模块范围
3 工程方面积累与改进
事件处理机制
事件 进入队列排号,通过分发器分发,Channel 是一个接收事件的管道, 在管道中由事件处理器来选择对应模块进行处理
从事件处理机制到 Reactor 模型
上图中 Client发起请求,ServiceHandler 专门用来处理用户请求 ,然后由 ServiceHandler 派遣给其他处理线程
Reactor 模式首先是事件驱动的,有一个或者多个并发输入源,有一个 Service Handler 和多个 EventHandlers
这个 Service Handler 会同步的将输入的请求多路复用的分发给相应的 Event Handler
从 Reactor 模型到 Netty NIO
这个线程模型和 Reactor 模型的区别在于 Netty NIO 是多级的,请求进来,Reactor 接收,交由线程池处理,在线程池中进行解码(decode) 处理(compute) 编码(encode)【从线程池开始即是对数据处理部分,上面的部分就是接收请求,处理socket连接部分】
Netty NIO 建立两个概念
1 Boss Group
2 Worker Group
前者是接收任务,维护所有