- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下关于干扰器的问题:
c1P1 - c2 - c4 - c5 c3
Where c1 to c3 can work in parallel after p1, and C4 and C5 work after them.
So conventionally I'd have something like this (with P1 and C1-C5 being runnables/callables)
p1.start();
p1.join();
c1.start();
c2.start();
c3.start();
c1.join();
c2.join();
c3.join();
c4.start();
c4.join();
c5.start();
c5.join();
但是在 Disruptor 的情况下,我的事件处理程序都没有实现 Runnable 或 Callable,那么 disruptor 框架最终如何并行运行它们?
采取以下场景:
我的消费者 C2 需要对事件进行一些注释的 Web 服务调用,在 SEDA 中,我可以为这样的 10 个 C2 请求启动 10 个线程 [用于将消息从队列中拉出 + 进行 Web 服务调用并更新下一个 SEDA 队列]这将确保我不会依次等待 10 个请求中的每一个的 Web 服务响应在这种情况下,我的事件处理器 C2(如果)是单个实例,将依次等待 10 个 C2 请求。
最佳答案
您的 EventHandler 被组合成 BatchEventProcessor 的一个实例,它是一个 Runnable。
使用 DSL 时,Disruptor 负责通过 Executor 实例创建这些线程。
关于您的特定场景(即:长时间运行的事件处理程序),您可能会引用这个问题:
关于disruptor-pattern - Disruptor——消费者是多线程的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17019203/
由于 RingBuffer 预先分配给定类型的对象,如何使用单个环形缓冲区来处理各种不同类型的消息? 您不能创建新的对象实例来插入到 ringBuffer 中,这会破坏预先分配的目的。 因此,您可以在
Disruptor 是否应该仅用于 POD 数据类型? 我的意思是应该Disruptor仅用于 T取值如 byte[], int[], etc ? 我的疑问是,如果我们使用 T其中有 Object引用
我有以下关于干扰器的问题: 消费者(事件处理器)没有实现他们实现的 EventHandler 的任何 Callable 或 Runnable 接口(interface),那么他们如何并行运行,例如,我
我有以下关于干扰器的问题: 消费者(事件处理器)没有实现他们实现的 EventHandler 的任何 Callable 或 Runnable 接口(interface),那么他们如何并行运行,例如,我
我们在生产中使用 LMAX Disruptor 已经将近一年了。一切都很好,直到上周我们看到 Disruptor 丢弃了消息。我们的 Disruptor 结构非常简单: Kafka -> RingBu
嗨, 目前我正在开发一个程序,它从 amq 队列中获取 2 个值并对它们执行一系列数学计算。在我的程序订阅并通过回调(监听器)接收消息的 amq 服务器上创建了一个主题。 现在,每当消息到达时,这两个
我们有一个具有固定长度数组的 Disruptor 实现。是否有可能实现一个不依赖于此数组的模式版本,而是包含(可能是自描述的)可变长度对象列表。例如,Protobuf 对象的 Ringbuffer?
前言 Disruptor是一个高性能的无锁并发框架,其主要应用场景是在高并发、低延迟的系统中,如金融领域的交易系统,游戏服务器等。其优点就是非常快,号称能支撑每秒600万订单。需要注意的是,D
前言 Disruptor的高性能,是多种技术结合以及本身架构的结果。本文主要讲源码,涉及到的相关知识点需要读者自行去了解,以下列出: 锁和CAS 伪共享和缓存行 v
Q1) 熟悉 Java Disruptor 模式的人是否知道他们对结果进行基准测试的消息大小?我正在编写一个类似的系统(出于纯粹的兴趣),当我阅读他们的测试描述时,没有提到发送的消息大小? http:
在disruptor(版本3.3.2)中,每个事件都是一个Runnable(因为EventProcessor扩展了runnable)。 我正在编写一个应用程序,每当EventHandler抛出异常时,
我正在研究LMAX Disruptor的源代码,我进入了RingBuffer抽象类。为什么 RingBufferPad 中正好有 7 个长字段 (p1 ... p7)?这是实际代码: https://
本文整理了Java中com.lmax.disruptor.YieldingWaitStrategy类的一些代码示例,展示了YieldingWaitStrategy类的具体用法。这些代码示例主要来源于G
我对 LMAX Disruptor 的理解它是一个 JAR,充满了速度惊人、并发的 Java 代码,每秒可实现 2000 万条消息的吞吐量(如果使用正确)。 我们目前的 ActiveMQ 实例对于我们
我正在使用 Disruptor-net在 C# 应用程序中。我在理解如何在破坏者模式中执行异步操作时遇到了一些困难。 假设我有几个事件处理程序,并且链中的最后一个将消息传递给我的业务逻辑处理器,我如何
有什么办法可以在一个结构中同时拥有这两种功能 - BlockingQueue 的语义,即非阻塞 peek、阻塞 poll 和阻塞 put。多个提供者一个消费者。 RingBuffer,它有效地充当对象
我正在使用 Disruptor-net在 C# 应用程序中。我在理解如何在破坏者模式中执行异步操作时遇到了一些困难。 假设我有几个事件处理程序,并且链中的最后一个将消息传递给我的业务逻辑处理器,我如何
我需要从 mongodb 存储和获取大量数据,所以我被要求使用 lmax Disruptor 接收和存储数据,我已经花了几天时间在 lmax github 帐户上寻找一个简单的教程,但我不太明白如何将
Disruptor github地址为:https://github.com/LMAX-Exchange/disruptor 我有一个简单的测试如下: public class DisruptorMa
我最近一直在学习 LMAX Disruptor 并进行了一些实验。令我困惑的一件事是 EventHandler 的 onEvent 处理程序方法的 endOfBatch 参数。考虑我的以下代码。首先,
我是一名优秀的程序员,十分优秀!