![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
文章平均质量分 86
phn555
生活,就应当努力使之美好起来
展开
-
Netty-1 基础学习
Netty的介绍 - Netty是一个**异步**的、基于**事件驱动**的网络应用框架,用于快速开发高性能、高可用的网络IO程序 - Netty主要针对在TCP协议下,面向客户端的高并发应用,或者P2P场景下,大量数据持续传输的应用 - 基于NIO I/O模型 BIO 传统阻塞IO 每个请求都需要创建独立的线程,与对应的客户端进行数据Read业务处理,数据 Write。 当并发数较大时,需要创建大量线程来处理连接,系统资源占用较大。 连接建立后,如果当前线程暂时没有数据可读,则线程就阻塞在Read操原创 2020-09-08 21:55:29 · 516 阅读 · 0 评论 -
Netty 3-框架设计
线程模型 传统阻塞I/O服务模型 采用阻塞I/O模式获取输入的数据 每个连接都需要独立的线程完成数据的输入,业务处理,数据返回 问题: 1. 并发数很大,就会创建大量线程,占用很大系统资源 2. 连接创建后,如果当前线程暂时没有数据可读,该线程会阻塞在read操作,造成线程资源浪费 Reactor模型 基于I/O复用模型:多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象等待,无需阻塞等待所有连接。当某个连接有新的数据可以处理时,操作系统通知应用程序,线程从阻塞状态返回,开始进行业务处理 基于线原创 2020-09-21 22:30:46 · 296 阅读 · 0 评论 -
Netty-2零拷贝
零拷贝基本介绍 零拷贝是网络编程的关键,很多性能优化都离不开。在Java程序中,常用的零拷贝有mmap(内存映射)和 sendfile。 DMA copy :直接内存拷贝 一次传统的IO操作和网络编程需要经历多少次用户态与内核态的转换,以及多少次数据拷贝? File file = new File("D://test.txt"); RandomAccessFile raf = new RandomAccessFile(file,"rw"); byte[] bytes =原创 2020-09-17 21:59:49 · 368 阅读 · 0 评论