1.Netty介绍及NIO三大组件

  1. Netty网络编程
  2. Netty的底层是NIO(非阻塞IO),常用的多线程和线程池使用的是阻塞IO,其效率并不高。
  3. 支持高并发,性能好
  4. 高性能的服务端程序、客户端程序

NIO三大组件

一、Channel

读写数据的双向传输通道

常见的传输通道

  • FIleChannel 文件传输通道
  • DatagramChannel UDP数据传输通道
  • SocketChannel TCP数据传输通道,专用于服务器、客户端
  • ServerSocketChannel TCP数据传输通道,专用于服务器

二、Buffer

内存缓冲区,用来暂存从channel中读取的数据,也可以将channel中的数据写入Buffer。

常用的Buffer

ByteBuffer,以字节的形式,抽象类:

  • MappedByteBuffer
  • DirectByteBuffer
  • HeapByteBuffer

三、Selector

  • Selector配合一个线程来管理多个Channel;
  • 获得这些Channel上发生的事件 (可连接,可读,可写);
  • Channel工作在非阻塞模式下,不会让线程吊死在一个Channel上;
  • 适合连接数多,但流量低的场景
相关推荐
沃尔威武13 小时前
Spring Cloud Gateway实战:微服务API网关从零到一
java·spring·微服务
敖正炀13 小时前
AQS-ConditionObject详解
java
张np13 小时前
java框架和http调用接口的区别
java·开发语言·http
web3.088899913 小时前
某宝店铺商品全量接口-item_search_shop_pro
java·服务器·数据库
朱一头zcy13 小时前
Java基础复习07:异常处理(编译时异常处理、运行时异常处理、try-catch-finally、自定义异常)
java·笔记·异常处理
手握风云-13 小时前
JavaEE 初阶第三十期:JVM,一次Full GC的架构级思考(上)
java·java-ee
ch.ju13 小时前
Java程序设计第二章——java数据类型:字符 转义字符
java
辉博士13 小时前
Spring Boot+EasyExcel实现Excel文件
java·spring boot·excel
小松加哲13 小时前
MyBatis完整流程详解
java·开发语言·mybatis
码码哈哈0.013 小时前
Spring AI 1.0.0 + ChromaDB 最新版踩坑:Collection does not exist 404 报错全记录
java·人工智能·spring