![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
文章平均质量分 81
_东极
少年锦时
展开
-
Netty(四):Netty模式
文章目录Netty 主要基于主从 Reactors 多线程模型(如图)做了一定的改进,其中主从 Reactor 多线程模型有多个 ReactorBossGroup 线程维护 Selector,只关注 Accecpt当接收到 Accept 事件,获取到对应的 SocketChannel,封装成 NIOScoketChannel 并注册到 Worker 线程(事件循环),并进行维护当 Worker 线程监听到 Selector 中通道发生自己感兴趣的事件后,就进行处理(就由 handler),注意 han原创 2021-06-17 13:57:50 · 432 阅读 · 1 评论 -
Netty(四):Reactor 模式
文章目录优点传统阻塞 I/O 服务模型Reactor 模式核心组成单Reactor单线程单 Reactor 多线程主从 Reactor 多线程官网:https://netty.io/优点传统的java nio 编程复杂,代码要求程度高,netty 统一API阻塞和非阻塞Socket传统阻塞 I/O 服务模型采取阻塞IO模式获取输入的数据,每个连接都需要独立的线程完成数据的输入,业务处理,数据返回,在并发量的增大,线程会阻塞,造成线程资源浪费Reactor 模式针对传统阻塞IO服务模型解决方案原创 2021-06-16 16:57:33 · 308 阅读 · 1 评论 -
Netty(三):NIO与零拷贝
文章目录什么是零拷贝传统IO模型mmap 优化sendFile优化mmap和sendFile区别案例 传统IO与NIO传输文件时间对比什么是零拷贝传统Linux操作系统的标准IO接口基于数据拷贝,虽然不需要进行实际物理磁盘的IO操作,但是传输过程中的数据拷贝操作会极大消耗CPU,造成操作系统的有效数据传输操作能力,零拷贝在数据拷贝同时允许CPU执行其他的任务在java程序中常用的零拷贝有mmap(内存映射)和sendFile传统IO模型File file = new File("test.txt"原创 2021-06-16 00:29:07 · 424 阅读 · 1 评论 -
Netty(二):NIO的基本组件
文章目录基本介绍案例说明NIO的BufferNIO 与BIO的比较基本介绍NIO: java non-blocking IO 是指JDK提供的新的API,同步非阻塞IO,相关类放在java,nio包以及子包下,并且对原java.io包中很多类进行改写主要由三大核心部分组成:Channel (通道),Buffer(缓冲区),Selector(选择器)NIO是面向缓冲区或者说是面向快编程的,数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动,增加了处理过程中灵活性,使用它可以提供非阻塞式高伸缩原创 2021-06-15 23:33:01 · 1370 阅读 · 1 评论 -
Netty(一):简介以及IO模型
文章目录Netty 的介绍网络模型BIONIOAIO使用场景Netty 的介绍Netty是JBOSS提供的基于java开源的一个异步,基于事件驱动的网络应用框架,以快速开发高性能,高可靠的网络IO程序。主要针对TCP协议下,面向Client端高并发应用,或者Peer-to-Peer下大了数据持续传输的应用,适用服务器通讯相关多种应用场景tcp/ip协议 -> 基于jdk的 i网络模型 -> NIO(io,网络) -> NIO网络模型java的网络编程模型: BIO.NIO,AI原创 2021-06-14 13:34:51 · 1315 阅读 · 1 评论