Netty 基础

原生NIO存在的问题

  • 类库繁杂
  • 需要多线程知识
  • 工作量增加,难度增加
  • 会出现断连、重连、网络闪退、半包读写、失败缓冲、网络拥塞、和异常流的处理
  • NIO本身的bug Epoll bug

Netty 概念

  • 异步,基于事件驱动的网络应用框架,可快速开发高性能,高可靠性的网络应用

线程模型的基本介绍

  • 传统阻塞I/O
  • Reactor模式(反应式)
  • 单Reactor,单线程
  • 单Reactor,多线程
  • 主从Reactor,多线程
  • netty 基于主从Reactor 多线程模型

传统阻塞型I/O模型

  • 模型特点
    • 采用阻塞IO模式获取输入的数据
    • 每个连接都选用独立的线程完成数据输入
  • 问题
    • 并发数很大的情况下不适用
    • 会阻塞