Netty-基础篇
文章平均质量分 76
Netty-基础篇 待续,没写完
Alan0517
...
展开
-
Netty基础篇-09-Netty高性能架构设计
每个Worker NIOEventLoop 处理业务时,会使用pipeline(管道), pipeline 中包含了 channel , 即通过pipeline 可以获取到对应通道, 管道中维护了很多的 处理器。NioEventLoop 表示一个不断循环的执行处理任务的线程, 每个 NioEventLoop 都有一个 selector , 用于监听绑 定在其上的 socket 的网络通讯。NioEventLoopGroup 可以有多个线程, 即可以含有多个 NioEventLoop。原创 2021-04-07 23:12:02 · 173 阅读 · 0 评论 -
Netty基础篇-08-线程模型(传统IO和Reactor三种模型)
传统阻塞 I/O 服务模型Reactor 模式单 Reactor 单线程;单 Reactor 多线程;主从 Reactor 多线程Netty 线程模式(Netty 主要基于主从 Reactor 多线程模型做了一定的改进,其中主从 Reactor 多线程模型有多 个 Reactor)原创 2021-04-05 22:16:55 · 331 阅读 · 0 评论 -
Netty基础篇-07-Netty 概述
Netty 对 JDK 自带的 NIO 的 API 进行了封装,解决了上述问题。原创 2021-04-05 17:45:31 · 156 阅读 · 0 评论 -
Netty基础篇-06-NIO与零拷贝
零拷贝基本介绍(所谓零拷贝就是从操作系统角度出发不经过CPU拷贝零拷贝是网络编程的关键,很多性能优化都离不开在java程序中,常用的零拷贝有mmap(内存映射)和sendFile。原创 2021-04-05 14:57:22 · 151 阅读 · 2 评论 -
Netty基础篇-05-Java的AIO
1.简介 JDK 7 引入了 Asynchronous I/O,即 AIO。 在进行 I/O 编程中,常用到两种模式: Reactor和 Proactor。 Java 的 NIO 就是 Reactor,当有事件触发时,服务器端得到通知,进行相应的处理 AIO 即 NIO2.0,叫做异步不阻塞的 IO。AIO 引入异步通道的概念,采用了 Proactor 模式,简化了程序编写,有效的请求才启动线程,它的特点是先由操作系统完成后才通知服务端程序启动线程去处理,一般适用于连接数较多且连接时间较长的应用原创 2021-04-05 14:35:34 · 199 阅读 · 0 评论 -
Netty基础篇-04-Java的NIO
Java NIO 全称,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的 输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的。NIO 相关类都被放在 java.nio 包及子包下,并且对原 java.io 包中的很多类进行改写。Channel(通道)Buffer(缓冲区)Selector(选择器)。NIO 是 面向缓冲区 ,或者面向 块 编程的。原创 2021-04-05 14:30:09 · 158 阅读 · 1 评论 -
Netty基础篇-03-Java的BIO
Java BIO 就是传统的 java io 编程,其相关的类和接口在 java.io。BIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需 要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实 现多个客户连接服务器)。BIO 方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4 以前的唯一选择,程序简单易理解。原创 2021-04-05 11:00:04 · 107 阅读 · 1 评论 -
Netty基础篇-02-Java的IO编程介绍以及适合场景分析
Java AIO(NIO.2) : 异步非阻塞,AIO 引入异步通道的概念,采用了 Proactor 模式,简化了程序编写,有效 的请求才启动线程,它的特点是先由操作系统完成后才通知服务端程序启动线程去处理,一般适用于连接数较 多且连接时间较长的应用;Java NIO : 同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注 册到多路复用器上,多路复用器轮询到连接有 I/O 请求就进行处理。Java 共支持 3 种网络编程模型/IO 模式:BIO、NIO、AIO。原创 2021-04-05 10:17:52 · 166 阅读 · 0 评论 -
Netty基础篇-01-Netty介绍和应用场景
Netty 是由 JBOSS 提供的一个 Java 开源框架,现为 Github上的独立项目。Netty 是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络 IO 程序。Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景。原创 2021-04-05 10:03:56 · 261 阅读 · 0 评论