JStorm出现com.lmax.disruptor.InsufficientCapacityException异常

高性能内存队列-Disruptor Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。基于Disruptor开发的系统单线程能支撑每秒600万订单。 2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。 martin fowler的的大作:原文、参考译文 ps:恕我浅薄,直接看大神的文章,说实话,是有些看不明白的,包括有些观点确实还不能消化,因为高度不够,看不清其背后的逻辑本质 阅读详情
  • 出现如下异常
 [WARN 2018-08-29 10:12:07 TaskHeartbeatTrigger:118 run pool-6-thread-2] Failed to publish timer event to {topo_name}:47_taskHeartbeat
shade.storm.com.lmax.disruptor.InsufficientCapacityException

这个问题实际上就是com.lmax.disruptor.InsufficientCapacityException。disruptor是storm所采用的一种内存队列,报容量不足。发送这种timerevent的目的是检查task是否存活。这种情况下就是task的长时间没有从该队列取数,导致了这个异常的发生。
检查spout的情况,发现大量PendingNum,达到了PendingNum的上线,这也解释了为什么新的event无法被加入。

Task    Emitted Acked   SendTps RecvTps Process(us) Deser(us)   Ser(us) Exe(us) DeserQueue(%)   SerQueue(%) ExeQueue(%) CtrlQueue(%)    PendingNum  EmptyCpuRatio   BatchInterTime  TupleLifeCycle(us)
23  6   0   0.11    0   0   0   0   0   0.00    0.00    0.00    0.00    101 1   0   0
24  6   1   0.11    0.01    0   0   0   0   0.00    0.00    0.00    0.00    100 1   0   0
25  5   1   0.11    0.01    0   0   0   0   0.00    0.00    0.00    0.00    101 1   0   0

自然怀疑是后续bolt处理太慢,导致了问题,于是检查业务日志,令人震惊的事情发生了,bolt居然以精确的60秒一条的频率在处理事件。没办法,采用最原始的办法,一行行注释掉原来代码。
最后发现问题居然出现在日志上,发现原来该代码使用的是Kafka(8.2.1版本)收集日志,而我们正在搞的就是把Kafka升级到1.0.1,不兼容的API再次挖坑了。60s是kafka设置的超时时间。

总结以下,我们架构人员不搞业务代码,但往往也会负责业务代码的架构改造。此时一定要问清楚这个代码所依赖的外部组件。另外,从代码架构角度看,非核心功能应该提供报警和自动剥离机制,而非直接阻塞业务线程。

Disruptor3.x Disruptor使用方式 Disruptor3.x Disruptor使用方式 EventHandler[] eventHandlers=new DisruptorEventHandler[]{new DisruptorEventHandler()}; DisruptorPublisher dp=new DisruptorPublisher(1024, eventHandlers); dp.start(); for (int i = 0; true; i++) { CDO cdo=new CDO(); cdo.setStringValue("strSN", i+"-"+DataUtil.uuid()); EventData data=new EventData(cdo); dp.publish(data); } 立即下载

相关推荐

GIS应用技巧之三招搞定重叠区域数据提取

在很多分析过程中,常常需要分析判断哪些图形发生了重叠,该重叠情况的发生在对应分析环境下具有特定意义。例如在缓冲区分析中,若两个受灾点周边的受灾面积(即缓冲区)有所重叠,分析重叠区域的受灾影响时,就需要考虑相互影响的因素。本例中先用【要素转面】工具提取出发生重叠的区域,其次用【空间连接】工具将原始图层信息连接到重叠数据的图层,分析重叠数据的属性表,即可得到发生重叠的原始图层数据。 Step1 提取重叠区属数据。打开【数据管理工具】|【要素】|【要素转面】工具,输入要素设置为“circles”,输出要素类设置为

端木宛白的博客家园 6万+

《重学Java高并发》disruptor是如何做到百万级吞吐

总的来说,面试是有套路的,一面基础,二面架构,三面个人。最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友” />总的来说,面试是有套路的,一面基础,二面架构,三面个人。最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友[外链图片转存中…(img-9YGvWA9U-1711465370424)][外链图片转存中…(img-pqM3EVWo-1711465370424)]点击传送门,即可免费领取!

2401_83704218的博客 968

一维光子晶体态密度计算与应用解析

态密度(DOS)是凝聚态物理和光子学中的核心概念,描述了量子态在能量空间的分布规律。基于麦克斯韦方程组的周期性介电结构分析表明,一维光子晶体通过布拉格散射形成光子带隙,其态密度曲线呈现典型的范霍夫奇点和禁带特征。这种特性使光子晶体在光学工程中具有重要价值,特别是在滤波器设计和传感器开发领域。通过转移矩阵法等数值计算手段,可以精确预测带隙位置和宽度,其中折射率对比度与周期数是关键设计参数。实际应用中,1550nm通信波段滤波器常采用Si/SiO2交替结构,而引入缺陷层则能产生高Q值缺陷模。计算优化时需注意数值

weixin_36487018的博客 193

高性能高并发队列-Disruptor

为什么80%的码农都做不了架构师?>>> ...

weixin_34238642的博客 801

保姆级教程:STM32CubeMX配置PWM死区与刹车功能,防止电机驱动炸管

本文详细解析了使用STM32CubeMX配置PWM死区与刹车功能的完整流程,帮助工程师避免电机驱动中的炸管风险。通过深入讲解死区时间计算公式、CubeMX配置界面及刹车功能的安全机制,结合实际电路设计要点和调试技巧,为电机驱动和电源转换应用提供可靠解决方案。

weixin_42550597的博客 346

STM32驱动AS5600磁性旋转位置传感器模块

文章目录简介引脚定义I2C接口写数据读数据从指定的地址开始读数据驱动程序cubeMX配置驱动程序`bsp_as5600.h``bsp_as5600.c`测试程序参考资料 简介 AS5600 是一款易于编程的磁性旋转位置传感器,具有高分辨率 12 位模拟或 PWM 输出。 这种非接触式系统测量径向磁化轴上磁铁的绝对角度。 该 AS5600 专为非接触式电位计应用而设计,其坚固的设计消除了任何同质外部杂散磁场的影响。 引脚定义 I2C接口 7位设备地址为0x36(二进制表示为0110110) 支持标准模式和

ApexYuan 1万+

Disruptor封装

在数据交换场景,disruptor受到越来越多的欢迎。下面是将原生disruptor封装成queue模型的代码,供参考   抽象类Disruptor,提供pull、take等接口     import com.lmax.disruptor.EventHandler; import com.lmax.disruptor.InsufficientCapacityException; ...

luoshi0801的专栏 464

生成对抗网络——CGAN(代码+理解)

CGAN(Conditional Generative Adversarial Network)模型是一种 深度学习模型,属于生成对抗网络(GAN)的一种 变体。它的 基本思想是通过 训练生成器和判别器两个网络,使生成器能够生成与给定条件 相匹配的 合成数据,而判别器则 负责区分真实数据和 生成数据。相比于GAN它引入了条件信息(y),使得生成器可以生成与给定条件相匹配的合成数据,从而提高了生成数据的可控性和针对性。

CXDNW的博客 1万+

高性能队列——Disruptor

https://tech.meituan.com/2016/11/18/disruptor.html 背景 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。 目前,包括Apac

新技术革命 1237

OpenClaw 2026 路线图详解:3 大协作能力升级与社区贡献增长 62% 的实证分析

介绍 OpenClaw 2026 如何通过上下文锚定(Context Anchoring)、协作质量定义和责任边界机制,将 AI 编程工具从单点补全升级为嵌入代码生命周期的协作对齐系统,并详解 `.openclaw/config.yaml` 中 `context_anchor` 配置的实操方法与效果

weixin_42545292的博客 384

单光子雪崩二极管(SPAD):原理、极高增益机制与微光探测解析

本文系统阐述了单光子雪崩二极管(SPAD)的工作原理及其在弱光探测中的应用。SPAD通过工作在盖革模式下的碰撞离化效应实现单光子探测,其核心机理包括:1)采用p+-n-n+结构实现高电场分布;2)通过雪崩倍增过程获得10^6量级增益;3)采用主动/被动淬灭机制实现快速恢复。文章详细分析了SPAD的关键性能参数(如光子探测效率、暗计数率等)及其在量子通信、激光雷达等领域的应用优势,揭示了该器件在极微弱光信号探测中的独特价值。

Fun_LiDAR的博客 1044

震惊kafka_5个令人震惊的统计数据证明日志不足

震惊kafka 我们都犯有记录不当行为的罪行。 不这样认为吗? 这些统计数据可能会改变您的想法 我们不会坐在这里问您有明显答案的问题,例如,您是否使用日志文件来监视生产中的应用程序? 我们所有人都使用日志,并且如果您知道如何查找日志,则会在其中存储有用的信息。 但是,日志远非完美。 在大多数情况下,日志并不指向生产问题的根本原因。 在本文中,我们将研究一些原因,为什么日志文件不足以为您...

danpu0978的博客 160

OpenClaw 2026.3.13 踩坑实录:飞书HTTP协议降级Bug与多版本回归问题汇总

摘要:OpenClaw v2026.3.13存在多个严重回归问题,包括飞书API调用协议意外降级为HTTP导致连接失败(#46100)、本地Gateway诊断矛盾(#45504)及设备配对CLI命令失效等。该版本发布流程本身也存在异常,被迫以v2026.3.13-1标签重新发布。建议飞书用户回退至v2026.3.8稳定版,其他用户谨慎升级。本文详细记录了各Bug现象、影响范围及临时解决方案,并梳理了飞书通道的"多版本回归史",指出其根源在于架构变迁和测试覆盖不足。最后提供了包含配置备份、

Maynor的博客 870

ERROR pipeline/output.go:121 Failed to publish events: temporary bulk send failure

ERROR pipeline/output.go:121 Failed to publish events: temporary bulk send failure 多余的不能识别标签,将fields删除

2902

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

聊聊高性能队列disruptor

Disruptor通过精巧的无锁设计实现了在高并发情形下的高性能。在美团内部,很多高并发场景借鉴了Disruptor的设计,减少竞争的强度。其设计思想可以扩展到分布式场景,通过无锁设计,来提升服务性能。使用Disruptor比使用ArrayBlockingQueue略微复杂,为方便读者上手,增加代码样例。代码实现的功能:每10ms向disruptor中插入一个元素,消费者读取数据,并打印到终端。详细逻辑请细读代码。以下代码基于3.3.4版本的Disruptor包。/**

夜尽天明 752

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

解决:NoClassdefFoundError:com.lmax.disruptor.EventHandler

今天遇到了这样一个报错信息,NoClassdefFoundError:com.lmax.disruptor.EventHandler 查了之后发现是因为少了一个叫disruptor的jar包,可以添加maven依赖解决: <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.4.2</version>

weixin_44567943的博客 6974

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Disruptor

背景 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。 目前,包括Apache Storm、Camel、Log4j 2在内的很多知名项目都应用了Disruptor以获取高性能。在

qq_23107097的博客 638

聊一聊disruptor-无锁并发框架

前言 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。 其实Disruptor与其说是一个框架,不如说是一种设计思路,这个设计思路对于存在“并发、缓冲区、生产者—消费者模型、事务处理”这些元素的程序来说,Disruptor提出了一种大幅提升性能(TPS)的方案。 来一张全链路流程图 disruptor设计理念很超前,解决了传统队列

Firstlucky77的博客 2060

每秒千万级别订单处理解决方案,SpringBoot + Disruptor框架

2020-04-05 14:31:19.547 INFO 7274 — [pool-1-thread-1] c.e.u.d.disrupMq.mq.HelloEventHandler : 消费者消费的信息是:MessageModel(message=消息到了,Hello world!Disruptor是LMAX在线交易平台的关键组成部分,LMAX平台使用该框架对订单处理速度能达到600万TPS,除金融领域之外,其他一般的应用中都可以用到Disruptor,它可以带来显著的性能提升。

abackcab的博客 1259

高性能内存队列Disruptor使用

Disruptor 在项目中的使用

yulang1992514的博客 1646

Windows 启动Hive 提示:com.lmax.disruptor.dsl.Disruptor.<init>

在windows 10 搭建Hive 请参考: 错误描述:windows cmd命令窗口,切换至hive 的安装目录,执行Hive 启动,提示如下错误信息: com.lmax.disruptor.dsl.Disruptor.&lt;init&gt; 第一种解决方法 google 和百度的结果是:disruptor.jar 版本过低,替换为高版本。 安装上述的检索结果,将Hive 依赖...

zhouzhiwengang的专栏 2362

单机最快的队列Disruptor解析和使用

介绍高性能队列Disruptor原理以及使用例子。

mxt51220的博客 1477

java.lang.NoSuchMethodError: com.lmax.disruptor.dsl.Disruptor.

java.lang.NoSuchMethodError: com.lmax.disruptor.dsl.Disruptor.

王者丶丿风范 836
上一篇: JVM参数调优
下一篇: JStorm端口被占用无法启动的问题
define_us
博客等级 码龄14年 157粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值