Netty与IO模型简介

Netty与IO模型简介

1、Netty 是由 JBOSS 提供的一个 Java 开源框架,现为 Github 上的独立项目。

2、Netty 是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络 IO 程序。

3、Netty 主要针对在 TCP 协议下,面向 Client 端的高并发应用,或者 Peer-to-Peer 场景下的大量数据持续传输的应用。

4、Netty 本质是一个 NIO 框架,适用于服务器通讯相关的多种应用场景。

Neety常用于各种框架的底层通讯,比如常见的RPC框架Dubbo

Netty 作为高性能的基础通信组件,提供了 TCP/UDPHTTP 协议栈,方便定制和开发私有协议栈,账号登录服务器。

建议书籍:https://waylau.com/essential-netty-in-action/index.html

I/O 模型

  • I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收

  • Java 共支持 3 种网络编程模型 I/O 模式:BIONIOAIO

  • Java BIO:同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。【简单示意图】
    Netty与IO模型简介_第1张图片

  • Java NIO:同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O 请求就进行处理。【简单示意图】
    Netty与IO模型简介_第2张图片

  • Java AIO(NIO.2):异步非阻塞,AIO 引入异步通道的概念,采用了 Proactor 模式,简化了程序编写,有效的请求才启动线程,它的特点是先由操作系统完成后才通知服务端程序启动线程去处理,一般适用于连接数较多且连接时间较长的应用。

你可能感兴趣的:(netty,io)