zoukankan      html  css  js  c++  java
  • 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模型,简化了变成模型,有效的请求后才会启动线程,特点就是现有操作系统完成后在通知服务端区处理请求,一般用于连接较长连接较多的应用场景。

      

  • 相关阅读:
    史上最全web.xml配置文件元素详解
    SpringMVC后台接收list类型的数据的实现方式
    史上最全的maven的pom.xml文件详解
    阿里菜鸟同学迟到的2018年个人总结(文末彩蛋)
    可以落地的DDD到底长什么样?
    欠的债,这一次都还给你们
    主流分布式架构的风流韵事...
    分布式架构的前世今生...
    分布式架构之美~
    征服诱人的Vagrant!
  • 原文地址:https://www.cnblogs.com/liboware/p/11921011.html
Copyright © 2011-2022 走看看