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没有明显的性能提升]

  • 相关阅读:
    关于 <customErrors> 标记的“mode”属性设置为“Off”的问题的解决方案
    ASP.NET MVC的帮助类HtmlHelper和UrlHelper
    js判断手机浏览器操作系统和微信浏览器的方法
    javascript倒计时代码及倒计时弹窗
    修改UISearchBar背景色
    dispatch_group_async
    Block 代替for循环
    GCD 延时操作
    GCD 倒计时
    创建UIButton
  • 原文地址:https://www.cnblogs.com/fubinhnust/p/11940115.html
Copyright © 2011-2022 走看看