1.为什么不直接用JDK的NIO
2.为什么选Netty? 而没选Mina,Grizzly, ACE,Cindy, Tomcat , Jetty
3.Netty跟Mina的关系
4. Netty 怎么切换三种 I/O 模式
5. Netty 如何支持三种 Reactor
6. TCP 粘包/半包 Netty 怎么解决的
7. 常用的“二次”编解码方式
8. keepalive 与 Idle 监测
9. Netty 的那些“锁”事
10. Netty 如何玩转内存使用
11. 启动Netty服务的本质
12.写数据的三种形式区别
13. Netty 写数据,写不进去时,怎么处理的
14. Netty 批量写数据时,如果想写的都写进去了,这时怎么优化
15. 编写网络应用程序基本步骤
16. Netty 编程中易错点解析
• LengthFieldBasedFrameDecoder 中 initialBytesToStrip 未考虑设置
• ChannelHandler 顺序不正确
• ChannelHandler 该共享不共享,不该共享却共享
• 分配 ByteBuf :分配器直接用 ByteBufAllocator.DEFAULT 等,而不是采用 ChannelHandlerContext.alloc()
• 未考虑 ByteBuf 的释放
• 错以为 ChannelHandlerContext.write(msg) 就写出数据了
• 乱用 ChannelHandlerContext.channel().writeAndFlush(msg)
17. 调整 System 参数(多少参数,怎么调整)
18. 如何让应用易诊断 ( 完善“线程名” 完善 “Handler ”名称 使用好 Netty 的日志 )
19. 如何统计并展示当前系统连接数 ()
20. Netty 内存泄漏是指什么? 原因:“忘记”release 后果:资源未释放 -> OOM
21. Netty 内存泄漏检测核心思路 引用计数(buffer.refCnt())+ 弱引用(Weak reference)
22.注解 @Sharable @Skip @UnstableApi @SuppressJava6Requirement @SuppressForbidden
23. 如何整改线程模型让响应健步如飞 ? CPU 密集型:运算型 IO 密集型:等待型
24. Pipeline