Why netty

作者: 落日无风 | 来源:发表于2018-07-15 10:16 被阅读51次

    Netty是一个基于事件驱动的异步高吞吐量服务器客户端框架。它的架构具有高性能、高扩展性及可靠性。

    架构

    架构图片.png
    • Channel 直接负责I/O的操作的管理,比如: read, write, connect, bind等,这里所有的I/O操作都是异步的
    • EventLoop 处理所有I/O事件
    • Pipeline 负责事件在链中的传播,且可以动态的调整链的功能。比如:http server的协议部分,可以由协议的handler来进行处理;完成协议处理后,触发业务逻辑handler,来完成业务操作。

    高性能

    • Netty基于nio, 利用Reactor模式,解决基于传统I/O模式下客户端线性增长带来的线程问题
    • 发送和接收数据基于堆外内存,实现零拷贝
    • 通过内存池来利于ByteBuf, 避免GC带来的性能消耗
    • 使用原子类,环形数组缓冲等提高系统的并发能力
      无论是Netty官方还是在业界使用中,Netty框架的性能都是佼佼者, 达到了高吞吐量低延时的目标。

    高扩展性

    Netty本身实现了常用的协议:

    Protocol.png

    如果是自定义的协议,使用Netty来实现很容易。Netty已经考虑到了该场景,只需要定制私有的handler,来处理私有协议的握手、加密、解密,然后动态的放到到Pipeline中即可。

    可靠性

    Netty的可靠性体现在几个方面:

    • 内存保护机制
    • 优雅停机
    • 通信链路检测

    相关文章

      网友评论

          本文标题:Why netty

          本文链接:https://www.haomeiwen.com/subject/tdexpftx.html