Netty-技术专区-基础入门介绍

1.Netty的介绍

(1) Netty是由JBOSS提供的一个Java开源框架,现在为Github上的独立项目。

(2) Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络IO程序。

(3) Netty主要针对于TCP协议下,面向Client客户端高并发应用,或者PeerToPeer,场景下的大量数据持续传输的应用。

(4) Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景。

(5) Netty框架如果要彻底理解透彻,需要先学习NIO,这样子会对我们认识Netty的原理和运作模式会有很大的帮助

2.Netty的应用场景

 (1)互联网行业

    分布式系统中,各个节点之间需要远程服务调用,高性能的RPC框架中,Netty作为异步话性能的通信框架,往往作为基础的通信组件被这些RPC框架使用。

    典型的应用:Dubbo、ElasticSearch,Dubbo通信传输机制,默认采用的就是Netty做为基础的通信组件,用于个进程节点之间的内部通信。

 (2)游戏行业

   无论是手机游戏或者大型的网络游戏,Java语言得到了越来越广泛的应用。

   Netty作为高性能的通信组件,提供了TCP/UDP和HTTP协议栈,方便定制和开发私有协议栈,账号登陆服务器。

   地图服务器之间可以方便的通过Netty进行高性能的通信。

(3)大数据领域

  经典的Hadoop的高性能通信和序列化组件(AVRO实现数据文件共享)的RPC框架,采用Netty进行跨界点通信。

  他的实现Netty Service基于Netty框架进行二次封装。

(4) 其它开源项目

https://netty.io/wiki/related-projects.html

3.Netty的层次关系

    Netty本身为应用层级别->基于Java-NIO服务应用API->基于原生JDK-IO网络模型Linux(epoll/evport/selector/kequeue)不同的操作系统支持的函数库不同,但是理论实现方式大同小异。

4.目前网络所支持IO模型

 (1) BIO模型:同步阻塞机制,服务器实现模式为一个连接一个线程,即客户端由链接请求是服务端需启动一个线程进行处理,如果这个链接不做任何事情会造成不必要的线程开销。

   (2) NIO模型:同步非阻塞机制,服务器实现模式为一个线程处理多个请求(连接),即客户端发送连接请求都会注册到了一个多路复用器,多路复用器轮询到连接由IO请求进行处理。

 (3)NIO2(AIO)异步非阻塞,AIO引用了一部通道的概念,采用了Proactor模型,简化了变成模型,有效的请求后才会启动线程,特点就是现有操作系统完成后在通知服务端区处理请求,一般用于连接较长连接较多的应用场景。

 

  

 

posted @ 2020-07-04 15:17  洛神灬殇  阅读(240)  评论(0编辑  收藏  举报