`
sunxboy
  • 浏览: 2868586 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Reactor 中 Dispatcher 的介绍

 
阅读更多
dispatcher是reactor的核心,顾名思义,就是一个分发器,用作事件的分发,当一个事件到达,(即Reacot.notify被调用)最终会由dispatcher进行任务分发调度(dispatcher.dipatch) 

Dispatcher根据线程和队列分为下面几种dispatcher,系统现在默认为SynchronousDispatcher(不知道以后会不会变,之前默认的是BlockingQueueDispatcher) 

SynchronousDispatcher 
当一个事件到达时,直接由reactor所在的线程直接执行 

BlockingQueueDispatcher(eventloop) 
事件到达时先存储在一个Blockingqueue中,再由统一的后台线程一一顺序执行 

ThreadPoolExecutorDispatcher(threadpool) 
事件达到时将事件交由线程池统一调度。该线程池为固定大小线程池,(Executors.newFixedThreadPool)线程大小由配置文件指定。 

RingBufferDispatcher(ringbuffer) 
该dispatcher是吞吐量最高,使用了名头比较响的lmax的Disruptor构建的ringBuffer作为事件存储数组,其实就是一个不断递增,并可覆盖之前循环。

 

分享到:
评论

相关推荐

    Reactor Pattern (一)

    NIO中的Selector组件就是Reactor的核心,它能够监控多个通道的状态变化,并根据这些变化调度相应的处理器。 **Reactor模式的主要组件:** 1. **Dispatcher(分发器)**:也称为Reactor,它是事件的中心调度者。当I...

    reactor-siemens.pdf

    本文将详细介绍Reactor模式的原理、组成部分及其在分布式日志服务系统中的应用实例。 #### 二、Reactor模式概述 **意图:** Reactor模式处理客户端并发发送至应用程序的服务请求。每个服务可能包含多个方法,并由...

    20120815_Reactor模式及在DSS中的体现1

    《Reactor模式及其在分布式系统服务(DSS)中的应用》 Reactor模式是一种重要的并发处理模式,尤其在处理I/O密集型任务时表现出色。它以事件驱动为基础,核心思想是通过反转事件处理流程,使得系统能够高效地处理...

    reactor(翻译)1

    Reactor模式是一种面向同步事件的多路分解和处理器调度的对象行为模式,主要应用于并发服务器应用程序,尤其是分布式系统中。它的核心目标是有效地处理来自多个客户端的并发服务请求,确保服务的可用性、效率、简化...

    Reactor:Linux上由C ++ 11实现的Reactor实现

    通过对这些代码的学习和分析,开发者可以深入了解如何在实际项目中应用Reactor模式来构建高效的并发服务器。 总结来说,Linux上的C++11实现的Reactor模式利用了C++11的新特性,如异步编程和线程库,结合Linux的...

    高性能Server---Reactor模型 _ 思考,执行,表达

    在高性能服务器设计中,Reactor模型是一种广泛使用的I/O模型,它是一种基于事件驱动的反应器设计模式。该模型包括以下几个主要部分: - **事件分离器(Event Demultiplexer)**:负责监听事件,当事件发生时,将...

    pi-pi-net 是一个在linux环境下封装epoll的网络库,可以基于此库非常方便的实现Reactor网络模型.zip

    它通过将事件分发器(Dispatcher)、事件处理器(Handler)和事件处理器工厂(Handler Factory)等组件解耦,使得系统能高效地处理大量并发事件。`pi-pi-net`库通过封装`epoll`,为开发者提供了一个实现Reactor模式...

    myreactorserver项目源码

    2. 在myreactorserver中的应用:myreactorserver项目的核心就是Reactor模式的实现。它通过一个中心Reactor实例管理所有I/O事件,包括客户端的连接请求、数据读写等,确保每个事件都能被正确地分发和处理,有效地处理...

    scalable-io-in-java-中文1

    4. **Dispatcher**:Reactor本身,负责根据发生的事件将工作分派到对应的Handler。 在Java中,基本的Reactor模式通常有两种实现: - **单线程Reactor**:所有IO事件都在同一个线程中处理,优点是简单,但可能受限...

    淘宝gecko框架设计.pdf

    在IO读请求过程中,Session向Reactor注册,Reactor通过选择器发现事件,将事件通过Controller派发给Session。Session根据线程模型决定在哪个线程执行ReadTask,读取操作后,使用CodecFactory的decoder解码,然后由...

    C语言实现网络编程应用 ACE架构详解

    Dispatcher通常基于事件多路复用机制实现,如Reactor或Proactor模式,支持同步和异步操作。 在Acceptor-Connector模式的工作流程中,有三个主要阶段: - 端点初始化:Acceptor的`open`方法被调用,创建被动模式的...

    精通并发与netty视频教程(2018)视频教程

    57_Reactor模式透彻理解及其在Netty中的应用 58_Reactor模式与Netty之间的关系详解 59_Acceptor与Dispatcher角色分析 60_Netty的自适应缓冲区分配策略与堆外内存创建方式 61_Reactor模式5大角色彻底分析 62_Reactor...

    精通并发与 netty 视频教程(2018)视频教程

    57_Reactor模式透彻理解及其在Netty中的应用 58_Reactor模式与Netty之间的关系详解 59_Acceptor与Dispatcher角色分析 60_Netty的自适应缓冲区分配策略与堆外内存创建方式 61_Reactor模式5大角色彻底分析 62_Reactor...

    netty 中文文档

    Reactor模型包括了多路复用器(Selector)、处理器(Dispatcher)和处理器链(ChannelHandler)等概念。 2. **ByteBuf**:Netty的Buffer机制,替代了Java NIO中的ByteBuffer,提供了更高效的内存管理。ByteBuf允许...

    javaNIO学习笔记(csdn)————程序.pdf

    - **Initiation Dispatcher(初始分发器)**:Reactor角色,注册、删除事件处理器,并在事件发生时调用对应的处理器。 - **Event Handler(事件处理器)**:定义了处理特定事件的方法,Netty中的...

    精通并发与netty 无加密视频

    第57讲:Reactor模式透彻理解及其在Netty中的应用 第58讲:Reactor模式与Netty之间的关系详解 第59讲:Acceptor与Dispatcher角色分析 第60讲:Netty的自适应缓冲区分配策略与堆外内存创建方式 第61讲:Reactor...

    SPRING-HTTP

    - **Reactor Dispatcher**:处理事件的调度器,如Schedulers.boundedElastic(),用于线程池管理。 - **WebFilter和WebExceptionHandler**:分别处理过滤和异常处理,提供对Web请求生命周期的自定义控制。 3. **...

Global site tag (gtag.js) - Google Analytics