当前位置: 首页 > 知识库问答 >
问题:

在lmax中断器内暂停处理?

暨曾笑
2023-03-14

我想使用Lmax Disruptor进行性能测试:

  • 配置DURUPTOR
  • 以某种方式“暂停”处理
  • 向RingBuffer添加多条消息
  • “取消暂停”处理

这样,我可以清楚地测量缓冲区清空的速度。如果我“混合”添加了许多消息(这会带来一些延迟)并进行处理,那么在处理速度方面可能会有不太确定的结果。

然而,我似乎没有在LMAX Disruptor(https://lmax-exchange.github.io/disruptor/docs/com/lmax/disruptor/dsl/Disruptor.html)中找到可用的暂停,有办法吗?

共有1个答案

司徒茂实
2023-03-14

答案在很大程度上取决于你所说的暂停打断者是什么意思。

您可以很容易地让消费者在到达第n条消息之前不会释放环形缓冲区中的插槽。然而,耗尽环形缓冲区所需的时间完全取决于耗电元件的速度。

然而,如果您希望对颠覆者it自身的成本进行基准测试,那将是一个更复杂的命题。我将从调查disruptor项目自己的性能测试开始。

在突发工作负载中,中断器的批处理效果实际上可以通过摊销昂贵操作(例如网络或磁盘IO)的成本来提高。

 类似资料:
  • 是否已经有了Python3的实现(或至少绑定到Python3)? 我可以看到Github上有一个原始的Java实现,但我没有看到Python3的任何内容。

  • 我们有一个使用Disruptor框架的系统,它有五个注册阶段来实现EvenetHandler。 阶段按顺序工作,因此请求只能在第一阶段完成时移动到第二阶段,该移动由Disruptor内部维护。 我们对第三阶段有问题,这是瓶颈,需要大量时间,因为它进行不同的HTTP调用并将响应存储在请求对象中。 因此,我们希望在第三阶段花了一段时间之后,将请求(无论有什么响应)提前到第四和第五阶段。 如何超时任何特

  • 我是LMAX Disruptor的新手,我正在探索将其用于需要处理巨大流量的多层异步项目。 请求被传递到平台以发送SMS,请求被清理/检查简单错误并被记录。 获取并分析与发送SMS的客户端相关的各种其他信息,并将其他参数添加到SMS信息中。 分析并选择正确的路由。然后从SMS信息中设置特定于平台的协议参数并提交给路由器。 像这样,将有接收和处理短信传递到日志、账单、重试和许多其他的流程。在每个阶段

  • 我将为消息实现断路器模式。基本要求是,如果微服务无法将消息发布到发布主题,则应停止接受来自其他 Kafka 主题的消息。当发布主题可用时,微服务应开始接受来自其他 Kafka 主题的消息。 有没有一种方法可以在Spring BootKafka Streams中实现这一点?

  • 我有一个环形缓冲区和一个事件处理程序。这用作消息传递服务器的入站缓冲区。 在偶处理程序中,它执行一些AMQP服务调用,有时由于调用没有超时而等待(下划线协议库中调用AMQP服务的错误)。对于2000tps,这使我的4096大小的环形缓冲区在一瞬间就满了。因为由于上述事实,onEvent调用线程似乎没有从该方法返回,并且在onEvent()内无限等待。 目前,不可能为该调用创建超时。 问题是: 当d

  • 在chrome中调试时,即使没有设置断点,脚本也总是在调试器中暂停,如果暂停未暂停,它会再次暂停自己。 能做些什么呢?