gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 14:16:26 26 4
gpt4 key购买 nike

在使用破坏者时,可能会有一个消费者滞后,并且由于消费者缓慢,整个应用程序都会受到影响。

请记住,每个生产者(Publisher)和消费者(EventProcessor)都在单个线程上运行,那么慢消费者问题的解决方案是什么?

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

最佳答案

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

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

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

关于consumer - LMAX Disruptor模式中慢消费者(eventProcessor)问题的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11606102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com