zoukankan      html  css  js  c++  java
  • Netty 组件

    Netty是一款异步的事件驱动的网络程序应用框架,支持快速的开发可维护性的高性能的面向协议的服务器和客户端。
    Netty优雅的处理了网络编程,多线程处理和并发领域的问题。

    包含的功能模块:

    传输服务:Socket和数据报,Http隧道,VM管道
    协议:Http和WebSocket,SSL安全套接字,压缩,大文件传输,Google Protopuf,RTSP实时流协议(流媒体),遗留的基于文本和二进制协议
    核心:可扩展的事件模型,统一的通信API,零拷贝的ByteBuffer

     

    Netty网络抽象组件

    提示:ctrl+alt+b查看各接口的实现,得知netty都提供了哪些支持

    • Channel ~ Socket
    • EventLoop ~ 控制流,多线程处理,并发
    • ChannelFuture ~ 异步通知

    Channel , EventLoop,Thread,EventLoopGroup的关系

      • EventLoopGroup:EventLoop = 1:n
      • EventLoop:Thread = 1:1 在EventLoop生命周期内
      • Channel:EventLoop = 1:1 在Channel生命周期内,只注册一个EventLoop

     Netty管理数据流和执行业务的组件

    • Channelandler ~ 业务处理容器 ;子类型【编码器,解码器,SimpleChannelInboundHandler】
    • ChannelPipeline ~ 将多个ChannelHandler串联起来
    • ChannelHandlerContext ~ ChannelHandler和ChannelPipeline之间的绑定,调用该对象的write导致消息跳过出站Handler在尾部直接写入

    建议 :建立一个连接,客户端需要一个EventLoopGroup,服务端需要两个EventLoopGroup(建立连接和处理连接)

     

    Netty5.x

    [netty5.x废弃,使用forkjoin没有明显的性能提升]

  • 相关阅读:
    REST framework框架的基本组件
    GIT如何根据历史记录回退代码
    如何查看磁盘存储空间
    git免密拉取代码
    windows好用的cmd命令
    git如何新建分支
    screen命令
    解决windows配置visual studio code调试golang环境问题
    转载一篇棒棒的AWK教程
    解决Creating Server TCP listening socket 54.179.160.162:7001: bind: Cannot assign requested address
  • 原文地址:https://www.cnblogs.com/fubinhnust/p/11940115.html
Copyright © 2011-2022 走看看