LMAX Disruptor 模式中缓慢消费者(eventProcessor)问题的解决方案

2023-11-23

在使用 Disruptor 时,可能会有一个消费者落后,并且由于该消费者速度缓慢,整个应用程序都会受到影响。

请记住,每个生产者(发布者)和消费者(EventProcessor)都在单个线程上运行,那么如何解决消费者缓慢问题呢?

我们可以在单个消费者上使用多个线程吗?如果没有,什么是更好的选择?


一般来说,使用 WorkerPool 允许多个池工作线程在单个使用者上工作,如果您有独立且持续时间可能可变的任务(例如:一些短任务,一些长任务),那么这很好。

另一种选择是让多个独立的工作线程并行处理事件,但每个工作线程仅处理模 N 的工作线程(例如,2 个线程,一个线程处理奇数事件 ID,一个线程处理偶数事件 ID)。如果您有一致的持续时间处理任务,并且允许批处理也非常有效地工作,那么这非常有用。

另一件需要考虑的事情是消费者可以进行“批处理”,这在审计等方面特别有用。如果您的使用者有 10 个事件正在等待,您可以收集所有 10 个事件并同时写入,而不是将 10 个事件单独写入审核日志。根据我的经验,这不仅仅涵盖了运行多个线程的需要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LMAX Disruptor 模式中缓慢消费者(eventProcessor)问题的解决方案 的相关文章

  • kafka架构、producer及consumer流程图

    1 kafka架构 xff1a 2 producer流程 xff1a 3 consumer流程 xff1a
  • RxJava 之Consumer和Action的使用

    在之前的RxJava中已经讲到创建观察者的代码如下 xff1a 创建观察者 Observer lt String gt observer 61 new Observer lt String gt 64 Override public voi
  • java Consumer接口与示例

    目录 一 consumer使用 示例代码1 示例代码2 示例代码3 示例代码4 二 BiConsumer使用 示例代码一 示例代码二 三 其他和Consumer相关的接口 Java 8 中的 Consumer 是一个函数接口 它可以接受一个
  • SpringBoot整合kafka(实现consumer)

    如何在springboot中集成kafka收消息 1 pom xml引入依赖的jar包
  • kafka 使用python消费consumer

    参考 python kafka 使用 大数据 kafka常见问题 kafka python之操作kafka Kafka基本了解 使用python读取consumer中的数据 安装kafka python pip install kafka
  • java版kafka producer实现

    需求 1 kafka server已经配置完全 且设定了访问限制 基于这一点 必须要设定认证 及预先分配的账号密码 2 由于项目开发环境是java 且不允许使用LogStash 基于这一点 必须实现一个java版的producer 先贴一份
  • LMAX Disruptor 模式中缓慢消费者(eventProcessor)问题的解决方案

    在使用 Disruptor 时 可能会有一个消费者落后 并且由于该消费者速度缓慢 整个应用程序都会受到影响 请记住 每个生产者 发布者 和消费者 EventProcessor 都在单个线程上运行 那么如何解决消费者缓慢问题呢 我们可以在单个
  • Kafka高级消费者使用Java API从主题获取所有消息(相当于--from-beginning)

    我正在使用 Kafka 站点上的 ConsumerGroupExample 代码测试 Kafka High Level Consumer 我想检索 Kafka 服务器配置中有关 测试 主题的所有现有消息 查看其他博客 auto offset
  • 如果第一个经纪人宕机,Kafka 消费者将无法消费

    我正在使用最新版本的kafka kafka 2 12 1 0 0 tgz 我已经设置了带有 3 个代理的简单集群 只是在每个实例的属性文件中更改了broker id 1 和listeners PLAINTEXT 9092 集群启动后 我使用
  • LMAX 的颠覆者模式如何运作?

    我正在尝试理解破坏者模式 我观看了 InfoQ 视频并尝试阅读他们的论文 我知道涉及一个环形缓冲区 它被初始化为一个非常大的数组 以利用缓存局部性 消除新内存的分配 听起来好像有一个或多个原子整数来跟踪位置 每个 事件 似乎都有一个唯一的
  • MassTransit Consumer从未收到消息

    我正在按照在 ASP NET Core 应用程序中使用 MassTransit 与 RabbitMQ 和 Autofac 的文档构建一个演示应用程序 我的程序代码 namespace MessageDemo public class Pro
  • python中LMAX架构中的业务逻辑imp

    I am trying to implement disruptor in Lmax https martinfowler com articles lmax html architecture As you know in lmax ar
  • 干扰器:门控序列

    我正在研究 Java 中的 Disruptor 我不明白门控序列的含义是什么 我知道它的核心部分是环形缓冲区 每个缓冲区都与一个序列号相关联 实际上LMAX实现的核心部分是Sequencer和它的Sequences 所以ringBuffer
  • Java 8 java.util.function.Consumer<> 的 C# 等效项是什么?

    C 中是否有与此接口等效的接口 例子 Consumer
  • PACT .NET 消费者测试:灵活长度数组

    我正在使用 pactNet 来测试一个 API 它应该返回一个灵活长度的数组 如果我调用 myApi items 它应该返回一个消费者不知道其确切大小的项目列表 所以答案应该是这样的 id 1 description foo id 2 de
  • 干扰器 helloworld 示例

    我想学习颠覆者框架 http code google com p disruptor 谁能给我一个用Java语言在main方法中运行的helloworld例子 这是一个简单的 可运行的示例 说明如何使用 Disruptor 库 示例是使用
  • 使用数据库(MySql)的生产者/消费者系统,这可行吗?

    我需要使用某物协调我的系统与多个消费者 生产者 每个消费者 生产者在具有不同操作系统的不同机器上运行 我一直在研究使用 MySql 来做到这一点 但这似乎非常困难 我的要求很简单 我希望能够随时添加或删除消费者 生产者 因此他们根本不应该相
  • 使用 Kafka 和 NodeJS 进行实时通知

    在我的项目中 我必须设计一个实时通知系统 我就是这样做的 如下图所示 你可以看到我使用 Kafka 作为队列消息系统 并使用 NodeJS 来构建 Websocket Server 和 Kafka Consumers 生产者将收集通知数据并
  • 在高性能Java应用程序中异步处理低速消费者(数据库)的最佳方式是什么

    One EventHandler 数据库消费者 Disruptor调用数据库中的存储过程 速度太慢 以至于阻塞Disruptor一段时间了 因为我需要Disruptor继续运行而不阻塞 我正在考虑添加一个额外的队列 以便EventHandl
  • LMAX Disruptor最简单、最实际的示例代码

    我希望我能得到最简单的示例代码 它将展示如何使用 LMAX Disruptor http code google com p disruptor 不幸的是 每一段代码都已经过时了 有人知道 我在哪里可以找到最新的小指南 最好没有 DSL 这

随机推荐

  • requestAnimationFrame 未定义 Next.js 和 React Native Web(动画模块)

    我正在研究 Next js 和 React Native Web 我设法按照官方 Next js 示例将它们一起运行 但是当我尝试使用反应本机中的动画包时 它失败并出现错误 请求动画帧没有定义 基本上这个功能执行node modules包
  • 将对象字面量提供给 ILGenerator

    Food obj ILGenerator gen GetILGenerator gen Emit obj replace this gen Emit OpCodes Call typeof Person GetMethod Eat 显然不可
  • javascript 导入的顺序重要吗?

    我有一个 aspx 页面并导入 jQuery jTemplate 和 Flexigrid
  • Java Sound 在连接麦克风后刷新线路列表

    我有一个简单的捕获 回放 Swing 应用程序 它必须检测计算机上是否没有合适的麦克风并警告用户 经过大量摆弄后 我找到了唯一可以让我检测新连接或移除的麦克风的解决方案 com sun media sound JDK13Services s
  • 在斜线上对齐文本

    是否有可能使文本在斜线上左对齐 它的对齐方式应该遵循倾斜的倾斜图像 并需要支持 IE9 我的例子code img display block float left transform rotate 5deg margin 0 15px di
  • Rails 和 Postgresql:如何按小时对查询进行分组?

    如何在 Postgres Rails 中按小时分组 我已经阅读了相当多的答案 但我遇到了错误 这在按日期分组时有效 Model group date updated at count 然后我尝试了以下几个小时但它们不起作用 Model gr
  • JRE 1.7 漏洞

    今天 我们的企业架构师提到最近在 JRE 1 7 中发现了一个漏洞 我找到一篇文章JRE 1 7 漏洞建议禁用 Java 我在工作中运行 JDK 1 5 和 1 6 像许多组织一样 我们没有使用最新的技术 所以没有问题 我在家使用 Java
  • 我的 bin 部署的 MVC4 应用程序中的区域路由有什么问题?

    我刚刚将 MVC4 NET 4 0 应用程序部署到我的 Web 主机 以进行 实时 部署测试 非区域路线运行良好 例如我的 Html ActionLink Register as a Client Register Account new
  • 从 Spring MVC 控制器返回 xml 文件

    我已经尝试了很多从控制器函数返回文件 这是我的功能 RequestMapping value files method RequestMethod GET ResponseBody public FileSystemResource get
  • 将Python对象转换为JSON输出[重复]

    这个问题在这里已经有答案了 Python 新手 尝试定义一个非常简单的类来保存一些值 然后将其输出为 JSON 表示法 import json class Multiple def init self basis self double b
  • 通过 URI 播放通知音频

    我有通知声音的 URI 例如content media internal audio media 122 but SoundPool不适用于 URI 它仅适用于文件路径的 apk 资源 有没有办法从 URI 获取媒体文件路径 我试过Uri
  • Jquery 自动完成选择类型错误:ui.item 未定义

    我正在使用 jquery ui 1 10 3 和 jquery 2 0 3 我正在尝试使用自动完成功能来更改另一个文本框的文本 从自动完成的建议选项中选择一个选项 下面是我的自动完成功能的代码 我确实根据需要得到了结果 但是当我从中选择一个
  • 使用 IFileOperation 在复制过程中创建目录

    使用 Stephen Toub 的 C IFileOperation 包装器 link 到目前为止一直运行良好 现在我正在尝试进行复制以从网络位置收集文件 每个网络位置到其自己的子目录中 FOO data into C gather Foo
  • 如何使电话号码成为 Telegram Bot 中的链接?

    我们的团队尝试创建 Telegram 机器人 让长消息中的电话号码可点击对我们来说至关重要 有时我们必须向用户发送包含大量信息和少量电话号码的消息 因此很难拿到电话 因为电报只允许复制整个消息 如果我们发送没有任何降价的短信 telegra
  • 将 NetCDF (.nc) 转换为 GEOTIFF

    I have nc文件大小约为 300MB 包含几个数据集 TEMP DEWPOINT 预测数据 我需要转换 TEMP 数据集为多个GEOTIFF one tif对于每个时间片 以下是如何 nc文件看起来像 调查了这个answer但这似乎适
  • WPF 数据绑定异常处理

    我有一个绑定到 Integer 属性的文本框 当用户在文本框中输入无法转换为整数的内容 例如名称 时 将引发异常并且原始属性值不会更改 我想捕获异常 以便我可以禁用连接到该属性的命令 一般来说 如果可能的话 我该如何从定义属性的视图模型中做
  • Maven:通过属性访问传递依赖的版本

    在 Maven 项目中 我的直接依赖项之一具有间接依赖项 com foo bar 我需要的是 Maven 属性 例如 bar version 与此工件的版本号 我需要这种机制来获取几个间接依赖项的版本号 我从中学到了那个问题我可以使用以下命
  • 如何在php中回显脚本

    我正在 WordPress 中使用短代码执行插件 这只是让我可以编写这样的短代码 email spamproof 但我正在尝试呼应脚本 请看下面
  • 如何查看“dplyr::collect”方法的帮助?

    我想找出可以传递哪些附加参数dplyr collect在省略号中 我想这样做是因为我相信collect之间发生了变化dplyr版本0 4 3 and 0 5 好像在新版本中collect 仅下载前 100k 行 除非有新的n Inf论证通过
  • LMAX Disruptor 模式中缓慢消费者(eventProcessor)问题的解决方案

    在使用 Disruptor 时 可能会有一个消费者落后 并且由于该消费者速度缓慢 整个应用程序都会受到影响 请记住 每个生产者 发布者 和消费者 EventProcessor 都在单个线程上运行 那么如何解决消费者缓慢问题呢 我们可以在单个