问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Reactor-Netty基本抽象类介绍

发布网友 发布时间:2024-09-27 07:11

我来回答

1个回答

热心网友 时间:2024-10-05 21:13

概述

之前已经把reactor3看的差不多了,在学会webflux之前还需要了解Reactor-Netty的相关知识,然后才能看懂webflux,然后才能看懂Gateway.

LoopResource

首先先学习几个基本的类才能看懂Reactor-Netty在干什么.我们先来看LoopResource类.官方说这个类是一个EventLoopGroup 的 selector并且关联了 Channel的工厂

* An {@link EventLoopGroup} selector with associated* {@link io.netty.channel.Channel} factories.

我们来看一下LoopResource提供的一些方法

static LoopResources create(String prefix) { if (Objects.requireNonNull(prefix, "prefix").isEmpty()) {throw new IllegalArgumentException("Cannot use empty prefix"); } return new DefaultLoopResources(prefix, DEFAULT_IO_SELECT_COUNT, DEFAULT_IO_WORKER_COUNT, true);}

我们来看看DefaultLoopResource内部实现

其实内部就是缓存了一堆的EventLoopGroup

ChannelPipelineConfigurer

这个类的作用就是Channel创建好之后,在读取数据之前的初始化工作,我们看几个实现类 HttpServerChannelInitializer

ChannelGroup

官方解释: 一个线程安全的集合,里面装的是打开的Channel,并且提供了很多操作Channel的方法,关闭的Channel会自动被group剔除.一个Channel可以属于多个Group

先来看看唯一一个实现类DefaultChannelGroup的源码

可以看到内部就是两个Map维护服务端和客户端的Channel,然后还有一个*.接下来看看添加Channel的方法再来看看是如何自动把过期Channel移除的,channel关闭之后会出发listener,listener会调用remove方法

其实就是很简单的从map中移除数据的逻辑

ConnectionObserver

从字面上看就是连接的观察者.是一个Connection的生命周期观察器.核心方法是 onStateChange.子类很多,等看源码的时候看到具体的再看源码.我们先来看ConnectionObserver定义的几个状态

TransportConfig

一个配置的抽象类,里面保存了一些属性

我们上面介绍的那些类都被保存在了这个Config里面.来看看其中一些比较重要的子类

ServerTransportConfig

可以看到这个子类里面提供了两个ConnectionObserver我们分别来看一看

ServerTransportDoOnconnectionServerTransportDoOn原文:https://juejin.cn/post/7112696590007009294
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
江西蓝天学院和赣江职业技术学院哪个好? 江西有什么好的中专学校 什么是单点登录(SSO),以及单点登录的实现流程 前端实现单点登录(SSO) 前端单点登录如何实现 面试官:来说说单点登录的三种实现方式 为什么很多人不买哈弗H9 座机如何开通国内长途 座机如何申请 辽宁省出租车手续怎么办? 飞机channel是什么意思? 卧室照光时间多久可以 卧室照明需要多久时间? Golang channel 三大坑,你踩过了嘛? 猛虎为其兽皮而死是什么意思 微信红包挂可以控制别人发包抢包大小么 vivox9怎么关闭开发者模式 我最爱的家人最后一集怎么不播了 我最爱的家人大结局今晚为啥不播了 我最爱的家人大结局怎么不更新了 我最爱的家人最后一集怎么不更新了 我最爱的家人中央8怎么不播了 我最爱的家人最后两集今晚8频道为啥不播放? 我最爱的家人大结局怎么不播了呀 安化周边踏青好去处_益阳安化旅游景点推荐 益阳好玩的地方推荐 益阳好玩的地方有什么 雷峰湖地质公园属哪个省? ...音乐,绘画作品,民间风俗???急急急急啊啊啊啊啊啊 卤味中加白糖有什么作用? 去舒兰市凤凰山游玩应该怎么规划路线? 御龙河公园夜市几点到几点 Netty源码篇8-Pipeline Handler HandlerContext创建和调度 handler源码... Netty 系列(2) — Netty 入门 协程与Channels (CSP: Kotlin, Golang) 世界知名品牌钻石项链有哪些?世界十大钻石项链品牌 周大福的钻戒和爱恋珠宝的钻戒哪个牌子的钻戒性价比好? 《VR女友》无设备游戏教程介绍_《VR女友》无设备游戏教程是什么_百度知 ... 等雨停写成成繁体字 万杰揉面机的质量怎么样? 万杰揉面机质量是否靠谱? 我是在淘宝出售自己家蜂蜜的,希望亲们能给一些比较大众化的蜂蜜检验方... 我想买部万杰揉面机,大家认为可以吗? 请问揉面机应该怎么选择呢 在赛尔号里除了已经绝版的稀有精灵有哪些? 建筑设计依据有哪些 整天上班比较忙,懒得去逛超市,能在网上买乐渔鱼豆腐吗? ...种乐渔牌的鱼豆腐,味道超赞的,想买点吃吃,网上能不能买到啊?_百度... 经常给儿子吃乐渔的鱿鱼头,现在乐渔还有什么更好吃的东西麽? 钢筋采用百分二十五节头不受限制 姐姐说想吃鱼豆腐,哪儿有得卖啊? 钢筋梁接头不超百分之二十五按什么计算