Netty 服务端的创建
阅读源码是最有效的学习方式
Netty服务端的创建源码分析
serevr 初始化
创建ServerBootStrap 实例
这个类是服务端启动辅助类
设置并绑定Reactor 线程池
netty 的线程池是EventLoopGroup 它实际是EventLoop的数组 ,EventLoop的职责是 处理所有注册到本线程的多路复用器Seletor的Channel,Selector的轮询操作由绑定在EventLoop线程的Run方法驱动,在一个循环体内循环执行,不仅仅处理IO事件,用户自定义的Task和定时任务的Task也是由Event Loop负责处理,这种线程模型不存在EventLoop线程去启动其他类型的线程同于异步处理任务,避免了多线程的并发操作和锁的竞争
设置并绑定服务端的Channel
利用反射创建NioServerSocketChannel
链路建立连接时 初始化ChannelPipline
1 链路注册 2 链路** 3 链路断开 4 接收到消息 5 处理完毕消息 7 发送应答消息 8 发生用户自定义事件
添加设置Channelhandler
包括 编解码 ByteToMesageCoder 链路空闲检测handler idleStateHandler