什么是Netty?
- Netty是由Jboss提供的一个Java开源框架,现为GitHub上的独立项目;
- Netty是一个异步的、基于事件驱动的网路应用框架,用以快速开发高性能、高可靠性的网路IO程序;
- Netty主要针对TCP/IP协议下,面向client端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用;
- Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景;
Netty的应用场景
-
互联网行业:在分布式系统中,各个节点之间需要远程服务调用,高性能的RPC框架必不可少,Netty作为异步高性能的通信组件,往往作为基础的通信组件被这个RPC框架使用。典型的应用有阿里分布式框架
Dubbo
,Dubbo
协议默认使用Netty作为基础通信组件,用于实现各进程节点之间的内部通信; -
游戏领域:无论是手游还是网游的服务端都大量使用了Java语言进行研发,Netty作为高性能的通信组件,提供了TCP/IP、UDP、HTTP等协议支持,方便定制和开发私有协议;
-
大数据领域:经典的Hadoop的高性能通信和序列化组件的
Avro
的RPC框架,默认采用Netty进行跨节点通信,它的Netty Service是基于Netty二次封装实现的; -
其它使用到Netty的开源项目可参考此网址内容:https://netty.io/wiki/related-projects.html
Netty学习书籍
- Netty IN Action
- Netty权威指南