Netty Reactor模型

1、netty抽象出两个线程池:BossGroup负责监听和建立连接 ;WorkerGroup 负责网络IO的读写
2、BossGroup 和 WorkerGroup 类型都是NioEventLoopGroup , 相当于一个事件循环组,这个组中含有多个事件循环,每一个事件循环都是NioEventLoop
3、NioEventLoop表示一个selector , 用户监听绑定在骑上的socket网络通讯
4、每一个Boos NioEventLoop循环执行3步:
a、轮询accept事件
b、建立连接,生成NioSocketChannel,并注册到workerGroup上
c、处理任务队列中的任务,即RunAllTasks
5、每个Worker NioEventLoop循环执行3步:
a、轮询读写时间
b、处理IO时间,在对应的NioSocketChannel上处理
Netty Reactor模型的更多相关文章
- 详细图解 Netty Reactor 启动全流程 | 万字长文 | 多图预警
本系列Netty源码解析文章基于 4.1.56.Final版本 大家第一眼看到这幅流程图,是不是脑瓜子嗡嗡的呢? 大家先不要惊慌,问题不大,本文笔者的目的就是要让大家清晰的理解这幅流程图,从而深刻的理 ...
- Reactor三种线程模型与Netty线程模型
文中所讲基本都是以非阻塞IO.异步IO为基础.对于阻塞式IO,下面的编程模型几乎都不适用 Reactor三种线程模型 单线程模型 单个线程以非阻塞IO或事件IO处理所有IO事件,包括连接.读.写.异常 ...
- Netty Reactor 线程模型笔记
引用: https://www.cnblogs.com/TomSnail/p/6158249.html https://www.cnblogs.com/heavenhome/articles/6554 ...
- Netty Reator(三)Reactor 模型
Netty Reator(三)Reactor 模型 Netty 系列目录 (https://www.cnblogs.com/binarylei/p/10117436.html) 本文介绍 DC Sch ...
- Netty 线程模型与Reactor 模式
前言 Netty 的线程模型是基于NIO的Selector 构建的,使用了异步驱动的Reactor 模式来构建的线程模型,可以很好的支持成百上千的 SocketChannel 连接.由于 READ/W ...
- Netty源码分析--Reactor模型(二)
这一节和我一起开始正式的去研究Netty源码.在研究之前,我想先介绍一下Reactor模型. 我先分享两篇文献,大家可以自行下载学习. 链接:https://pan.baidu.com/s/1Uty ...
- Netty源码 reactor 模型
翻阅源码时,我们会发现netty中很多方法的调用都是通过线程池的方式进行异步的调用, 这种 eventLoop.execute 方式的调用,实际上便是reactor线程.对应项目中使用广泛的NioE ...
- [编织消息框架][网络IO模型]Netty Reactor
严格来讲Netty Reactor是一种设计模式,一听模式两字就知道了吧,套路哈哈 Reactor中文译为“反应堆”. 看图netty处理流程 1.netty server 至少有两组reactor. ...
- eventloop & actor模式 & Java线程模型演进 & Netty线程模型 总结
eventloop的基本概念可以参考:http://www.ruanyifeng.com/blog/2013/10/event_loop.html Eventloop指的是独立于主线程的一条线程,专门 ...
- Netty线程模型
一.Reactor模型 1.单线程模型 Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下: 1)作为NIO服务端,接收客户端的TCP连接: 2)作为NI ...
随机推荐
- vue 项目引入 jquery
一.引入 jquery 1. 方式一 默认会安装最新版本 jquery npm install jquery 2. 方式二 指定版本 npm install jquery@3.6.0 3. 方式三 在 ...
- CentOS 镜像官网下载链接
CentOS 镜像官网下载链接: https://www.centos.org/download/mirrors/ http://mirrors.aliyun.com/centos/ https:// ...
- RabbitMQ异常注意 reply-code=404, reply-text=NOT_FOUND - no exchange 'topic' in vhost '/', class-id=50
1.问题排查: 第一次,一定要先启动Provider再启动Consumer!!! rabbitmq为初始状态没有队列信息,然后我又没有启动consumer,所以导致provider找不到queue和e ...
- nestjs mongoose关联查询
nestjs,mongoose关联查询网上搜不到了,查看了nest/mongoose.d.ts文件,分享一波 user.model.ts import { Prop, Schema, SchemaFa ...
- JWT 工具类的编写
导入JWT pom依赖 <!--JWT 依赖--><dependency> <groupId>io.jsonwebtoken</groupId> < ...
- DDL数据定义--Hive中数据可和表的基本操作(增删改查)
数据库 创建数据库: CREATE DATABASE [ IF NOT EXISTS ] database_name *****IF NOT EXISTS进行判断,避免创建的数据库已经存在的错误 创 ...
- MySQL无法同时执行多条语句解决办法 Dbeaver
一.场景 说明:在数据库中同时执行多条语句,提示语法错误,如下图: 二.解决办法 第一步:在每条语句最后加上分号(;)表示本条语句结束: 第二步:在数据库连接串上设置 allowMultiQuerie ...
- 性能测试-ps与vmstat
1.ps命令-获取当前系统的进程状态 ps >ps(process status) 获取帮助: man ps 获取当前系统的进程状态 ps-ef-eF-elv 使用标准语法查看系统上的每个进程 ...
- Python学习笔记(一)环境确认
1.安装环境 1)python解释器 版本3.10.2 安装完毕后在命令提示符窗口中输入python显示版本信息 2)开发工具 pycharm 2021.1.3 2.新建项目 创建项目后修改解释器配置 ...
- pj_time_swap
#!/usr/bin/python# -*- coding: UTF-8 -*- import timeimport refrom datetime import datetime, timezone ...