1、Netty是什么?
- Netty是JBOSS提供的一个JAVA网络应用开源框架
- Netty是异步的、基于事件驱动的网络应用框架,能够用作快速开发高性能高可用的网络IO程序
- Netty主要针对在TCP协议下面向Client端/客户端的高并发应用,或者Peer to Peer场景下的大量数据持续传输的应用
- Netty本质是一个NIO框架,适用于服务器通信相关的多种应用场景。Netty的底层是NIO,NIO的底层是Java的IO和网络编程,再底层就是计算机网络的TCP/IP协议实现
- Netty的源码已经开源,对源码的阅读分析在Netty的学习至关重要,作者Alex也会在2021年一月底完成Netty的初步学习
2、Netty的应用场景有哪些?
前一节大概介绍了Netty是一个网络应用框架,用于快速开发高性能&高可用&高并发的网络IO程序,适用于服务器通信
-
互联网应用:现阶段的分布式系统,各个节点需要远程服务调用,高性能RPC框架是必需的。Netty是异步的高性能通信框架,通常被当作基础通信组件构建RPC框架。
阿里分布式服务框架Dubbo的RPC框架使用Dubbo协议进行节点间通信,而Dubbo协议就是默认使用Netty作为基础的通信组件实现各个进程节点间的内部通信。
-
游戏应用:随着Java在游戏行业的应用展开,Netty在私有协议栈、账号登陆服务器、地图服务器等地方被广泛使用,这得益于Netty提供了高性能的TCP/IP和HTTP协议栈,方便客户定制
-
大数据应用:Hadoop的高性能通信和序列号组件Avro的RPC框架默认使用Netty进行节点间通信、且它的Netty Service是基于Netty进行二次封装实现的
-
开源项目:https://netty.io/wiki/related-projects.html 可以在本网址查看使用Netty的开源项目进行学习