首页 > 其他分享 >Netty 异步任务模型 及 Future-Listener 机制

Netty 异步任务模型 及 Future-Listener 机制

时间:2024-08-20 19:54:42浏览次数:12  
标签:NioEventLoop Netty 池中 Listener Future 线程

https://cloud.tencent.com/developer/article/2246990

 

服务器端为例

1 . 线程池 : Netty 模型核心就是两个线程池 , BossGroup 线程池 和 WorkerGroup 线程池 ;

① BossGroup 线程池 : 负责维护客户端连接操作 ;

② WorkerGroup 线程池 : 负责与客户端进行数据交互 ;

③ 线程池类型 : 上述两个线程池 ( BossGroup / WorkerGroup ) 都是 NioEventLoopGroup 类型的 ;

④ 线程池中的线程 : NioEventLoopGroup 线程池中维护了多个 NioEventLoop 线程 ;

2 . 线程池中的线程 : NioEventLoopGroup 线程池中维护了若干 NioEventLoop 线程 , 这相当于主从反应器 ( Reactor ) 模型中的反应器 , 每个 NioEventLoop 中都有一个 选择器 ( Selector ) , 用于监听 Socket IO 事件 , 如 建立连接 , 数据读写 等 ;

3 . NioEventLoop 工作流程 :

NioEventLoop 中可以按照一定顺序进行数据处理 , 如数据到来后 , 按照下面的流程执行一系列操作 ;

读取数据 -> 数据解码 -> 业务逻辑处理 -> 数据编码 -> 数据发送

4 . NioEventLoop 中封装内容 :

  • 选择器 Selector
  • 任务队列 TaskQueue
  • 调度任务队列 ScheduleTaskQueue
  • NIO 通道 NioChannel
  • 管道 ChannelPipeline

 

标签:NioEventLoop,Netty,池中,Listener,Future,线程
From: https://www.cnblogs.com/clarino/p/18370206

相关文章

  • CompleteFuture 学习
    一CompleteFuture使用场景创建异步任务简单任务异步回调多任务组合处理二创建异步任务supplyAsync(有返回值)//使用默认线程池publicstatic<U>CompletableFuture<U>supplyAsync(Supplier<U>supplier)//使用自定义线程池publicstatic<U>CompletableFutur......
  • Java 使用 CompletableFuture 简化异步调用
    使用CompletableFuture可以大大简化处理多线程之间的异步调用关系,如串行依赖、并行、聚合等等。CompletableFuture是对Future接口的扩展和增强,进行了丰富的接口方法扩展,完美的弥补了Future的不足。本篇博客通过代码的方式,展示CompletableFuture的常用方法,体验其强大灵......
  • Netty的常用操作
    EventLoopEventLoop本质上是一个单线程执行器,里面有run方法处理Channel上源源不断的IO事件。EventLoop继承了ScheduledExecutorService中的所有方法。常用方法Future<?>submit(Runnabletask)提交任务ScheduledFuture<?>scheduleWithFixedDelay(Runnablecommand,long......
  • C# Tcp Server端实现,使用TcpListener
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Net.Sockets;usingSystem.Net;usingF.Studio.Common.Cfg;usingSystem.Collections.Concurrent;namespaceKomaxCSTcpServer{pub......
  • 如何使用Java CompletableFuture
    Java的CompletableFuture是处理异步编程的利器。它不仅简化了异步任务的执行,还提供了丰富的API来支持任务的组合、异常处理、以及多任务并行。1.CompletableFuture的基础概念CompletableFuture是Java8中引入的,属于java.util.concurrent包。它实现了Future接口,允......
  • 【Java手写RPC框架系列-1】—— 基础知识准备:RPC+Netty
    代码随想录知识星球介绍https://articles.zsxq.com/id_m76jd72243bi.html基于Netty手写实现RPChttps://www.cnblogs.com/mic112/p/15565795.html项目背景与介绍RPC:远程过程调用协议:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序......
  • Netty框架
    Netty什么是NettyNetty的官网:[https://netty.io/Netty是一个JavaNIO技术的开源异步事件驱动的网络编程框架,用于快速开发可维护的高性能协议服务器和客户端。往通俗了讲,可以将Netty理解为:一个将JavaNIO进行了大量封装,并大大降低JavaNIO使用难度和上手门槛的网络编程框架......
  • 深入解析Node.js中的fs.watch:options与listener详解
    在Node.js中,fs.watch方法是一个功能强大的文件系统监控工具,它允许我们对文件或目录进行实时监控,并在文件或目录发生变化时触发相应的操作。在使用fs.watch时,两个关键的部分是options对象和listener回调函数。本文将详细讲解这两个部分,帮助读者更好地理解和使用fs.watch。一......
  • Java中的异步编程模型与事件处理框架:从CompletableFuture到Reactive Streams
    Java中的异步编程模型与事件处理框架:从CompletableFuture到ReactiveStreams大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代软件开发中,异步编程和事件驱动架构变得越来越重要。它们能有效提高应用程序的性能和响应速度,特别是在处理高并发和I......
  • ServletContextListener监听常用场景
    ServletContextListener是JavaEE中的一个接口,用于监听ServletContext生命周期的变化。通过实现这个接口,你可以在Web应用启动或关闭时执行一些初始化或清理操作。ServletContextListener是JavaWeb开发中一种重要的监听器,它用于监听ServletContext对象的创建和......