同步/异步/阻塞/非阻塞/BIO/NIO/AIO
https://www.jianshu.com/p/331ee864bda9
https://zhuanlan.zhihu.com/p/66148226
Netty面试题(含解答)
https://www.cnblogs.com/xiaoyangjia/p/11526197.html
Netty解决TCP粘包问题的方案
- 消息定长
- 将消息分为消息头和消息体
- 包尾添加特殊分隔符
网络IO模型
阻塞IO(bloking IO)
非阻塞IO(non-blocking IO)
多路复用IO(multiplexing IO)
信号驱动式IO(signal-driven IO)
异步IO(asynchronous IO)
https://www.jianshu.com/p/a95bcb116765
Netty内存种类
- DirectByteBuffer
- HeapByteBuffer
Netty的内存池是怎么实现的?
Netty对象池怎么实现的?
select. poll. epoll的机制及其区别?
https://www.cnblogs.com/aspirant/p/9166944.html
这可能是目前最透彻的Netty原理架构解析(面试重点资料)
https://juejin.im/post/5be00763e51d453d4a5cf289
Netty服务端架构
![](https://img.haomeiwen.com/i4428387/5ace4c65af0bf835.png)
Netty的线程模型是怎么样的?
- 主从Reactor多线程模型
Netty的零拷贝提体现在哪里?
- 堆外直接内存进行Socket读写,不需要进行字节缓冲区的二次拷贝。如果使用传统的堆内存(HEAP BUFFERS)进行Socket读写,JVM会将堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中。
- Netty提供了组合Buffer对象。避免了传统通过内存拷贝的方式将几个小Buffer合并成一个大的Buffer。
Netty缓存种类
- DirectByteBuffer
优点:0拷贝
缺点:
- HeapByteBuffer
Netty服务端、客户端流程图
https://blog.csdn.net/qq_28165595/article/details/84718028
Netty设计模式
- 构造器模式
ServerBootstrap 和 Bootstrap 的构建
- 责任链设计模式
pipeline 上事件的传播
- Reactor 模式的使用
Netty 底层事件的收发机制是多线程的 Reactor 模式的应用。
- 对象池
对线程池的应用,ByteBuf内存池
打印netty日志
InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.INSTANCE);
pipeline.addLast(new LoggingHandler(LogLevel.INFO));
对netty 类说明
https://juejin.im/entry/5b6bd6b45188251b1e1ff88b
Java架构师培训-基于Netty手写Dubbo框架(70分钟后讲netty)
https://www.bilibili.com/video/av49089458/
10架构师经验大牛 ------ 基于Netty实现高性能弹幕系统(netty原理、编码、解码、包解析)
https://www.bilibili.com/video/av59320920?p=4
RPC历史
![](https://img.haomeiwen.com/i4428387/026c9d8a88358694.png)
netty底层
- netty封装了bio、nio
bio流程图
![](https://img.haomeiwen.com/i4428387/2ae1bd7f25517062.png)
nio流程图
-
single thread
image.png
- nio-reactor模式 (线程池)
- 由一个专门的线程池来处理所有的 IO 事件,并负责分发。
- 事件驱动机制:事件到的时候触发,而不是同步的去监视事件。
- 线程通讯:线程之间通过 wait,notify 等方式通讯。保证每次上下文切换都是有意义的。减少无谓的线程切换。
![](https://img.haomeiwen.com/i4428387/d9b9d1a3176d05ed.png)
bio、nio、多路复用图解
https://www.jianshu.com/p/b9f3f6a16911
马士兵IO模型与Netty
https://www.bilibili.com/video/av53759412?from=search&seid=3281228927951567357
官方文档demo
https://netty.io/wiki/index.html
netty中文教程
https://waylau.com/netty-4-user-guide/Getting%20Started/Shutting%20Down%20Your%20Application.html
netty视频教程,讲得清楚
https://www.bilibili.com/video/av39500382/?p=2
netty 代码原理
- 官网英文:https://netty.io/wiki/user-guide-for-4.x.html
- 中文:https://zhuanlan.zhihu.com/p/24955867?refer=dreawer
netty w3school教程
https://www.w3cschool.cn/essential_netty_in_action/essential_netty_in_action-2rto28cd.html
netty websocket demo
netty源码剖析
https://www.bilibili.com/video/av76227904?from=search&seid=3281228927951567357
网友评论