01、Netty 基础 之 Netty 介绍

一、介绍

1、 netty是由JBOSS提供的一个java开源框架,现为github上的独立项目;
2、 netty是一个异步的、基于事件驱动的网络应用框架,可以快速开发高性能、高可靠的网络IO程序;
3、 netty主要针对在TCP协议下,面向clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用;
4、 netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景;
5、 要透彻理解netty,需要先学习NIO,这样我们才能阅读netty的源码;

二、什么是异步请求

1、 B/S架构在没有ajax之前就是同步请求;
同步是一个请求过去了,我要等待响应。
异步是一个请求过去了,我可以干别的事情。

三、netty的模型

netty是在nio的基础上进行了封装和优化。
 

四、netty的应用场景

1、 互联网行业;
在分布式系统中,各个节点之间需要远程服务调用,高性能的RPC框架必不可少,netty作为异步高性能的通信框架,往往作为基础通信组件被这些RPC框架使用。

2、 典型的应用有;
dubbo的RPC框架使用dubbo协议进行节点间通信,dubbo协议默认使用netty作为基础通信组件,用于实现各进程节点之间的内部通信。

3、 游戏行业;
1、无论是手游服务端还是大型的网络游戏,Java语言得到了越来越广泛的应用。
2、netty作为高性能的基础通信组件,提供了TCP/UDP和HTTP协议栈,方便定制和开发私有协议栈,账号登录服务器。
3、地图服务器之间可以方便的通过netty进行高性能的通信。

4、 大数据领域;
1、经典的hadoop的高性能通信和序列化组件(AVRO实现数据文件共享)的RPC框架,默认采用netty进行跨界点通信。
2、它的netty service基于netty框架二次封装实现。

5、 其他开源项目用到netty;
https://netty.io/wiki/related-projects.html