pmf*_*pmf 8 java queue concurrency disruptor-pattern
是否有一些示例代码用于从标准LinkedBlockingQueue迁移到LMAX的Disruptor架构?我有一个事件处理应用程序(单个生产者,多个消费者),可能会从更改中受益.
当我的目标是最大化吞吐量而不是最小化延迟时,它是否有意义?
Mentaqueue基于相同的想法提供单个生产者单个消费者队列 - http://mentaqueue.soliveirajr.com/Page.mtw,您可以检查代码,但我自己从未使用过它.
Disruptor开箱即用提供了两种技术 - 我不会进入代码但是如果你需要可以这样做.
它允许一种对事件处理程序进行排序的方法,您可以对其进行配置,以便每个处理程序将并行处理所有请求; 每个请求都由每个处理程序处理.
一个Worker Pool实现,允许每个工作线程池处理一个请求; 每个请求都将从线程池中处理一次.
如果您已经确定排队需要很长时间,或者您有很长时间争用(锁定/同步),那么我肯定会看看Disruptor.通过查看对您的体系结构的调整是否可以导致干扰器的清洁使用,您将获得最大的好处.
是的,减少事务延迟应该有助于实现吞吐量,因此它可能有意义,但这取决于阻碍吞吐量的因素.这将成为一个非常笼统的评论 - 您应该确定应用程序阻碍吞吐量的区域.
导致我使用Disruptor的指标是 - 许多以类似方式处理的短期任务,内存争用,排序要求,流式传输或重IO(可以从批处理中受益).
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |