首页 > 其他分享 >Disruptor核心概念

Disruptor核心概念

时间:2022-11-24 15:37:29浏览次数:33  
标签:缓冲区 Disruptor 消费者 核心 概念 RingBuffer 序号 onEvent

在Disruptor中,生产者不断生产数据,并将数据持续放入一个环形缓冲区RingBufferh中(底层是一个数组)。而消费者通过一个回调函数onEvent()监听着该RingBuffer。当生产者往RingBuffer中增加数据时,就会触发消费者的onEvent()方法,从而通知消费者去消费数据。

消费者的onEvent()方法由EventHandler接口提供。

在Disruptor中,缓冲区中的数据称为事件Event,消费者则是EventHandler(WorkHandler)的实现类。

Disruptor有以下三个特征:

1.基于事件驱动。

2.基于“观察者”模式、“生产者-消费者”模型。

3.可以在无锁的情况下实现网络的队列操作。

环形缓冲区RingBuffer实际是一个数组。RingBuffer可以通过next()方法获取一个序号,这个序号指向RingBuffer中的下一个元素的位置。与NIO中Buffer的position类似,当生产者不断地向RingBuffer读写数据时,RingBuffer获取的序号值就会一直增长,直到绕过这个环。

RingBuffer的大小必须是2的n次方,因此要找到RingBuffer中当前序号指向的元素位置,可以通过MOD快速定位。

当前序号指向的元素值= 当前元素的位置 % RingBuffer的长度。

也正是因为RingBuffer是数组,并且有一个容易预测的访问模式,所以CPU能够快速对RingBuffer中的数据进行预加载,从而大幅提升Disruptor的执行速度。

标签:缓冲区,Disruptor,消费者,核心,概念,RingBuffer,序号,onEvent
From: https://blog.51cto.com/u_11315052/5884021

相关文章

  • 一类(One-Class)分类器的概念及应用领域
    前言本文内容由博客和论文复制而来,仅摘取了部分,原文请看文末参考资料。一类分类技术概念与传统的分类技术不同,一类分类技术仅采用隶属于一个类别的样本来训练分类器,其通......
  • AP 、STA、中继的基本概念
    一、AP、STA、中继的基本概念AP:发出wifi,供别人连接。STA:连接其他wifi信号中继:连接其他wifi,并放出wifi供其他人连接。主要是为了提高距离......
  • AOP中的概念
    基础知识【Aspect(切面):指横切性关注点的抽象即为切面,它与类相似,只是两者的关注点不一样,类是对物体特征的抽象,而切面横切性关注点的抽象.join......
  • 用例技术(1)-一些基础概念
    词汇缩写SuD——SystemunderDisscussion:被讨论系统用例历史20世纪60年代:IvarJacobson在爱立信工作提出了用例的概念。20世纪80年代:引入到面向对象编程领域。1994年......
  • 分布式文件系统HDFS 相关概念知识
    一、HDFS的局限性:1.不支持实时处理的任务需求。但Hbase满足实时处理需求。2.无法高效存储大量的小文件,因为是以索引结构保存到内存当中去。3.不支持多用户写入以及任意修......
  • android安卓触摸事件touchEvent分发的 核心精辟代码
    几行代码就可以让你快速了解安卓的触摸事件机制快速进入实战/***false表示自己处理孩子然后就像递归一样如果shiviewgroup那么首先是从activity开始的->decov......
  • CCNP Day3 EIGRP的相关概念
    1、Eigrp参数R2#showipeigrpneighborsIP-EIGRPneighborsforprocess100HAddressInterfaceHoldUptimeSRTTRTOQSeq......
  • 4G 安卓智能核心板 XY610 (虎贲T610平台)
     紫光展锐虎贲T610采用12nm制程工艺,由两颗1.8GHz的armCortex-A75CPU和六颗1.8GHz的ArmCortex-A55处理器组成,GPU采用的是614.4MHz的MaliG52。​XY610 是一款基......
  • 核心交换机配置DHCP服务,这篇文章有详细的步骤和命令
    动态主机配置协议DHCP(DynamicHostConfigurationProtocol)是一种用于集中对用户IP地址进行动态管理和配置的技术。 下面我为大家整理了非常详细的配置步骤和命令,仅供......
  • 企业数据加密的六大核心优势
    ​随着互联网的不断发展,数据对企业来说非常重要,特别是企业内部核心数据。因此,对数据安全进行保护是每个企业的必要工作,一旦发生数据泄漏,那么企业将面临重大的经济损失,甚至是......