什么是Netty
Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序
Netty和Tomcat的区别
Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Http协议的,他的实质是一个基于http协议的web容器,但是Netty不一样,他能通过编程自定义各种协议,因为netty能够通过codec自己来编码/解码字节流
Netty的特点
- Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架
- Netty主要用于实时性高的场景,如果做tcp开发,netty不二之选
- netty是一个网络组件,tcp,udp,http都支持,完全可以基于netty搞出一个比tomcat牛的http server,可自己定义协议
- 而Tomcat是Apache下的针对HTTP的服务器项目,前者更像一个中间件框架,后者更像一个实现中间件的工具
Netty为什么快
-
非阻塞IO
-
零拷贝
-
高效的Reactor线程模型
-
无锁化串行设计
-
volatile 的大量、正确使用
-
CAS 和原子类的广泛使用
-
线程安全容器的使用
-
通过读写锁提升并发性能