1为什么选择 Netty
image.png
2说说业务中,Netty 的使用场景
dubbo 经典的Hadoop的高性能通信和序列化组件Avro的RPC框架等
3什么是 TCP 粘包/拆包
image.png
4TCP 粘包/拆包的解决办法
image.png
image.png
还有分隔符和定长解码器
5netty线程模型
image.png
image.png
image.png
6说说 Netty 的零拷贝
netty零拷贝从三个方面说
- Netty的接收和发送ByteBuffer采用DIRECT BUFFERS,使用堆外直接内存进行Socket读写,不需要进行字节缓冲区的二次拷贝。如果使用传统的堆内存(HEAP BUFFERS)进行Socket读写,JVM会将堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中。相比于堆外直接内存,消息在发送过程中多了一次缓冲区的内存拷贝。
- Netty提供了组合Buffer对象,可以聚合多个ByteBuffer对象,用户可以像操作一个Buffer那样方便的对组合Buffer进行操作,避免了传统通过内存拷贝的方式将几个小Buffer合并成一个大的Buffer。
- Netty的文件传输采用了transferTo方法,它可以直接将文件缓冲区的数据发送到目标Channel,避免了传统通过循环write方式导致的内存拷贝问题。
网友评论