摘录自淘宝Java中间件团队的博客

Java NIO trick and trap

 

NIO神话

  • 使用NIO = 高性能

    NIO不一定更快的场景

      客户端应用
      连接数<1000
      并发程度不高
      局域网环境下

  • NIO完全屏蔽了平台差异

    NIO仍然是基于各个OS平台的IO系统实现的,差异仍然存在

  • 使用NIO做网络编程很容易

    离散的事件驱动模型,编程困难
    陷阱重重

 

 

Reactor模式

  • NIO网络框架的典型模式
  • 核心组件

    Synchronous Event Demultiplexer : Event loop + 事件分离    
    Dispatcher : 事件派发,可以多线程      
    Request Handler : 事件处理,业务代码

  • Mina Netty Cindy都是此模式的实现