做书网站,品质好的形容词,淘宝网店怎么运营起来,中国移动国际精品网netty是一个 NIO 框架#xff0c;它提供了一个高性能、异步事件驱动的网络应用程序框架
NIO 三大主键channelbuffer 通道/缓冲 #xff1f;有哪些selector 选择器 #xff08;适合连接多#xff0c;流量低#xff09;多路复用 单线程配合selector管理多个chann…netty是一个 NIO 框架它提供了一个高性能、异步事件驱动的网络应用程序框架
NIO 三大主键channelbuffer 通道/缓冲 有哪些selector 选择器 适合连接多流量低多路复用 单线程配合selector管理多个channel
适合 多线程设计适合 少连接 线程池适合 短连接 没有处理完就堵塞
selector管理多个channel
FileChannel
byteBuffer 指针/limit/容量 byteBuffer默认写模式 flip读模式 clear写 compact压缩指针 粘包多条数据同时发送 半包 因为空间限制 只发送了一半 零拷贝 channelTransterTo 不用将数据拷贝到java中 jvm适合小文件 遍历 fileWalkfileTree 访问者模式
阻塞 非阻塞 自旋耗cpu seletor 解决自旋
seletor监听的事件 accept connect read write netty 组件eventLoop事件循环 单线程执行器 处理channel上的IO事件eventLoopGroup组 处理IO事件 普通任务 定时任务 默认cpu核心X2
channel通道 pipeline流水线添加处理方法 handler write写入(不是马上刷出 要调用flush) writeAndFlush写入刷出 ChannelFuture是Netty中的一个接口它表示一个异步操作的结果。ChannelFuture可以用于监听异步操作的结果并在结果完成时进行处理。closeFuture关闭 future和promise jdkfuture《nettyfuture《promise jdkfuture: get()阻塞等待nettyfuture可以同步和异步得到结果 getnow 等待结果非阻塞 没有就null sync阻塞等待结束 失败抛异常 await 阻塞等待结束 失败不抛异常 要用isSuccess判断是否成功 cause获取失败信息 阻塞 addlinstenee 异步获取结果promise 两个容器间传递结果 setSuccess设置成功 setfailure 设置失败channel的handler和pipeline 元素和容器 handler处理入站和出站 byteBuf (netty) 区别红 是基于内存的默认读写高不消耗GC 创建和销毁大 可以切换 堆内存 提供了更多的操作方法比如读取、写入、复制、转换等 扩容容量 最大容量之间池化默认开启4.1版本以后组成 指针读写limti 容量 最大容量 写入各种类型 boolean01,int 大小long 等 对应的读取 读写分离 回收引用计数初始1 调用1或者-1 等于0就被回收 头尾释放提高内存使用率零拷贝byteBuffer(NIO) 是堆内存的 收到GC影响 读取、写入组成 指针limti 容量
netty零拷贝 byteBuf.slice 大的byteBuf切成小的切片没有发生复制 原始的不变不能再写入限制了容量从一个 ByteBuf 复制到另一个 ByteBufcomposite(小的组成大的)切片没有发生复制