有没有一些从标准LinkedBlockingQueue迁移到LMAX' Disruptor架构的示例代码?我有一个事件处理应用程序(单个生产者,多个消费者),它可能会从更改中受益。
当我的目标是最大化吞吐量而不是最小化延迟时,这有意义吗?
发布于 2013-06-02 14:11:46
基于同样的想法,Mentaqueue提供了一个单生产者单消费者队列- http://mentaqueue.soliveirajr.com/Page.mtw,你可以检查代码,尽管我自己从来没有用过它。
Disruptor开箱即用,在这里提供了两种技术--我还不打算讨论代码,但如果您需要的话,可以这样做。
如果你已经发现排队花了很长时间,或者你有大量的时间竞争(锁/同步),那么我肯定会看看Disruptor。通过查看对体系结构的调整是否可能导致对Disruptor的干净使用,您将获得最佳收益。
是减少事务延迟应该有助于实现吞吐量,因此这可能是有意义的,但这取决于是什么阻碍了您的吞吐量。这将成为一个非常普遍的意见-你应该确定你的应用程序的区域限制了吞吐量。
可能导致我使用Disruptor的指标是-大量以类似方式处理的短期任务,内存争用,排序要求,流或繁重的IO (可以从批处理中受益)。
https://stackoverflow.com/questions/16874534
复制相似问题