zoukankan      html  css  js  c++  java
  • 三、netty概览

    所有文章

    https://www.cnblogs.com/lay2017/p/12922074.html

    正文

    为了了解netty的工作机制,这里有几个概念需要知道

    1.BootStrap

    2.EventLoopGroup

    3.EventLoop

    4.SocketChannel

    5.ChanneInitializer

    6.ChannelPipeline

    7.ChannelHandler

    这些概念关联关系如图

     下面分别描述

    BootStrap

    bootstrap主要关注怎么启动netty,比如启动线程、打开连接等

    EventLoopGroup

    顾名思义,是EventLoop的一个组的概念。之所以把EventLoop变成组,就是为了共享资源,比如线程资源。

    EventLoop

    eventLoop其实就是循环监听事件,比如SocketChannel的数据到达事件。监听到的事件会交给对应的ChannelHandler处理

    SocketChannel

    socketChannel表示的是两台电脑的TCP连接,它被eventLoop管理,并且一直都是同一个eventLoop。eventLoop也会启用同一个线程去管理socketChannel,因此你也不用担心并发问题。

    ChannelInitializer

    ChannelInitializer是一个特殊的ChannelHandler,当一个SocketChannel被创建的时候,ChannelInitializer会被关联到ChannelPipeline上。所以,ChannelInitializer也可以说是初始化了SocketChannel。当SocketChannel初始化完毕,ChannelInitializer就会移除。

    ChannelPipeline

    每一个SocketChannel都绑定有一个ChannelPipeline,ChannelPipeline包含一系列ChannelHandler。当EventLoop从SocketChannel读取到数据,就会传输给ChannelHandler,一个ChannelHandler处理完就会传递给下一个。向SocketChannel写入数据也是一样的通过ChannelPipeline处理。

    ChannelHandler

    ChannelHandler处理来自SocketChannel的数据,ChannelHandler也可以处理要写入SocketChannel的数据。

  • 相关阅读:
    史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
    整合SPRING CLOUD云服务架构
    java虚拟机
    test面板1
    gulp的使用
    拖拽js
    dependencies与devDependencies的区别
    获取随机颜色js
    nodejs创建ejs工程
    css图片垂直居中
  • 原文地址:https://www.cnblogs.com/lay2017/p/12922338.html
Copyright © 2011-2022 走看看