LMAX Disruptor 最简单实际的示例代码

Posted

技术标签:

【中文标题】LMAX Disruptor 最简单实际的示例代码【英文标题】:The simplest and actual example code of LMAX Disruptor 【发布时间】:2012-02-28 10:17:58 【问题描述】:

我希望我能获得最简单的示例代码,它将展示如何使用 LMAX 中断器 (http://code.google.com/p/disruptor/)。

很遗憾,每段代码都已过时。有人知道,我在哪里可以找到小的和最新的 howto(最好没有 DSL)?

【问题讨论】:

我需要多少次直接否决“链接到其他网站”???? 【参考方案1】:

这是一个简单、可运行的示例,说明如何使用 Disruptor 库。示例是用 Java 编写的,使用了 Disruptor 库的 2.10.4 版本。

https://github.com/trevorbernard/disruptor-examples

【讨论】:

很好的例子。我发现在线程之间传递 ValueEvents 时没有意识到它们被缓冲区回收了。我已经向您发送了一个包含一些 cmets 的拉取请求,以便人们可以从我的错误中吸取教训。【参考方案2】:

您可以在此处查看示例。

http://code.google.com/p/disruptor/wiki/CodeExampleDisruptor2x

我使用上面的 wiki 做了一个简单的例子。希望这对你有帮助。

【讨论】:

那个例子代码已经过时了,在 Disruptor 2.10 中找不到 ValueEntry,哪里可以找到最新的 Disruptor 例子代码,如果 2.8+ 最好!谢谢! ValueEvent 不是破坏者库类。它是您的班级,用于“保存”您的实际事件或消息。然后使用事件工厂来预先创建 ValueEvent 的实例并放入环形缓冲区。当您的消息或事件进入时,您会创建一个实例,在其上设置消息并说发布。然后环形缓冲区将其分派给处理程序。【参考方案3】:

现在github上有一个官方的示例应用:Getting-Started

【讨论】:

【参考方案4】:

与多个发布者和链式处理程序共享一个示例,这使用了他们最新的可用 dsl api 格式 http://vijayrc.com/vectorclocks/post/thread3

【讨论】:

【参考方案5】:

我已经分享了示例here,希望对您有所帮助。

这个问题可能与

重复

Disruptor helloworld example

【讨论】:

以上是关于LMAX Disruptor 最简单实际的示例代码的主要内容,如果未能解决你的问题,请参考以下文章

从 LinkedBlockingQueue 迁移到 LMAX 的 Disruptor

LMAX Disruptor - 啥决定了批量大小?

LMAX Disruptor 如何解决典型的消息代理问题?

LMAX Disruptor Timeout EventHandler

LMAX Disruptor 依赖图/带有 SequenceBarrier 的门控

是否应该将 Disruptor (LMAX) 与内存和 CQRS 中的大模型一起使用?