1.Netty是什么
1.1 简介
- Netty是一个Java开源框架,现为
Github上的独立项目 - Netty是一个异步的、
基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络I/O编程 - Netty主要针对在TCP协议下,面向
Clients端的高并发应用,或者Peer to Peer场景下的大量数据持续传输的应用 - Netty本质是一个
NIO框架,适用于服务器通讯相关的多种应用
2.IO模型
3.Netty三大组件
3.1 Channel & Buffer
Channel有一点类似于stream,它就是读写数据的双向通道,可以channel将数据读入buffer,也可以将buffer写入到channel,而之前的stream要么是input,要么是output,channel比stream更为底层
常见的channel有:
FileChannel(文件管道)DatagramChannel(数据报管道,UDP)serverSocketChannel(TCP)ServerSocketChannel(TCP)
buffer则是用来缓冲读写数据的,常见的buffer有:
ByteBuffer(以字节为单位存储数据的缓冲区)- MappedByteBuffer
- DirectByteBuffer
- HeapByteBuffer
- ShortBuffer
- IntBuffer
- LongBuffer
- FloatBuffer
- DoubleBuffer