问题标签 [lmax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
49 浏览

java - java中使用lmax Disruptor(3.0)处理百万文档

我有以下用例:

当我的服务启动时,它可能需要在尽可能短的时间内处理数百万个文档。将有三个数据来源。

我已经设置了以下内容:

我的每个来源调用都消耗,我使用 Guice 创建一个 Singleton 破坏器。

我的 eventHandler 例程是

我在日志中看到生产者 ( consume) 有时会停滞不前。我假设这是 ringBuffer 已满,而 eventHandler 无法足够快地处理。我看到 eventHandler 正在处理文档(来自我的日志),然后过了一会儿,生产者开始将更多文档发布到环形缓冲区。

问题:

  • 我是否使用了正确的 Disruptor 模式?我看到有很多方法可以使用它。我选择使用 batchEventProcessor 所以它会发出信号endOfBatch
  • 如何提高 EventHandler 的效率?processDocumentsList 可能很慢。
  • 我应该使用并行事件处理程序吗?lmax用户指南提到这是可能的,FAQ中有一个问题。但是如何将它与 batchEventProcessor 一起使用?它只需要一个事件处理程序。
0 投票
0 回答
55 浏览

c# - 限制 LMAX Disruptor(RingBuffer) 中的活动线程数

我有多个可以并行运行的不同类型的消费者,但我不希望所有消费者同时并行运行,因为我没有那么多 CPU 内核,并且性能会因为上下文切换而降低。这种情况通常如何用disruptor-net解决?