Netty 简介

Netty是解决并发问题的框架。

Netty是一款异步事件驱动的、高性能网络应用程序框架。


Netty特点

支持多种传输类型,包含阻塞和非阻塞的。

线程模型简单强大。

支持无连接数据报套接字。

支持链接逻辑组件利用。

比Java JDK的吞吐量更高、延迟更低。

资源消耗更低。

不会因连接过慢、过快、超载导致内存溢出。

支持SSL/TLS、StartTLS

支持Applet和OSGI。


Netty核心组件

  1. Channel
  2. 回调
  3. Future
  4. 事件
  5. ChannelHandler

Channel 中文意思是通道、频道,在Nettty中表示一个开放的连接。

这个连接是出站、入站的的载体。比方说:有批口罩需要从广州运到北京,通过飞机运输,航道即是Channel 。航道可以关闭或打开,Channel 也可以关闭或打开。

回调,这个概念对70后、80后的程序员非常容易懂。回调本质上是一个方法回调方法是把功能定义和功能实现分离的一种手段,是一种松耦合的设计思想。举例说明:A方法调用B方法,叫做A引用B;回调时,A方法不直接调用B方法,而是调用B方法的引用,这就叫回调。B方法在框架中并没有实现,由程序员来实现。

Future,中文的意思是未来、将来。在Netty中Future提供了另一种在操作完成时通知应用程序的方式。Netty提供了Future叫ChannelFuture,每个出站的I/O操作都返回一个ChannelFuture.

通常是在ChannelFuture中添加ChannelFutureListener,由ChannelFutureListener的回调方法operationComplete来判断操作是否成功。

事件,表示改变操作的状态,或状态改变后的通知。它本质上和方法是同一个东东,两者区别在于:方法是主动出击,事件是被动反击。Netty中的事件有:出站事件、用户事件、错误事件。Netty的事件可以分发给ChannelHander处理。