Netty开篇——基础介绍与准备(一)

I/O篇

  1. Netty的介绍
    1. Netty 是由JBOSS提供的一个Java开源框架在Github上
    2. Netty 是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序。
    3. Netty 主要针对在TCP协议下面向客户端的高并发应用,或者Peer-to-Peer/P2P场景下的大量数据持续传输的应用。
    4. Netty是一个NIO框架,适用于服务器通讯相关场景
    5. 共四层
      • TCP/IP
      • java.io
      • Nio
      • Netty
  2. Netty的应用场景
    1. 互联网行业
      • 分布式系统各节点之间远程服务调用,Netty 作为异步高性能的通信框架,往往作为基础通信组件被这些 RPC 框架使用。
      • 典型应用:Dubbo默认使用Netty作为基础通信组件,用于实现各进程节点之间的内部通信
    2. 游戏行业
      • Netty提供了TCP/UDP和HTTP协议,方便定制和开发私有协议栈,账号登录服务器
      • 地图服务器之间可以通过Netty进行高性能的通信
    3. 大数据领域
      • Hadoop的高性能通信和序列化组件AVRo的RPC框架,默认采用 Netty进行跨界点通信
      • 它的Netty Service基于Netty框架二次封装实现。
    4. 其他开源项目
      • Akka、flink、spark等
  3. I/O模型基本说明
    1. 用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能
    2. Java 共支持3 种I/O模式
      • BIO: 同步并阻塞(传统阻塞)
      • NIO: 同步非阻塞
      • AIO: 异步非阻塞
  1. BIO、NIO、AIO 适用场景分析
    1. BIO适用于连接数目比较小且固定的架构,对服务器资源要求比较高,并发局限于应用中,JDK4以前的唯一选择,但程序简单易理解。
    2. NIO适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,弹幕系统,服务器间通讯等。编程比较复杂,JDK4开始支持。

AIO使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS/操作系统参与并发操作。编程比较复杂,JDK7开始支持。

Netty开篇——基础介绍与准备(一)_第1张图片

Netty开篇——基础介绍与准备(一)_第2张图片

你可能感兴趣的:(Netty,后端,java)