我想学习Disruptor 框架。谁能给我一个可以用Java程序语言在main方法中运行的helloworld示例?
问问题
11708 次
3 回答
12
这是一个简单、可运行的示例,说明如何使用 Disruptor 库。示例是使用 Disruptor 库的 2.10.4 版本编写的。
https://github.com/trevorbernard/disruptor-examples
我也在这个线程上交叉发布:LMAX Disruptor 的最简单和实际的示例代码
于 2013-01-24T05:07:46.220 回答
4
我这边还有一个。我尝试了一个使用开源 Lmax 库的破坏者示例。
我认为使用 lmax 中断器(不是中断器的内部)背后的想法是创建消息调度程序并像消费者一样注册事件侦听器。
您创建一个 Disruptor,并指定消息类型。
Disruptor<Message> disruptor = new Disruptor<Message>(Message.EVENT_FACTORY, 2048, exec);`
你创建一个处理程序
final EventHandler<Message> handler = new EventHandler<Message>() {
// event will eventually be recycled by the Disruptor after it wraps
public void onEvent(final Message event, final long sequence, final boolean endOfBatch) throws Exception {
Integer value = event.getMsg();
if(value % 10000 == 0){
System.out.println("ValueEvent: " + value + " Sequence: " + sequence);
double timeINnanos = (System.nanoTime()-startTime);
double timetaken = (timeINnanos/1e9);
System.out.println("Time Taken till now in sec " + timetaken );
}
}
};
向中断器注册处理程序
disruptor.handleEventsWith(handler);
启动中断器并将返回的 RingBuffer 传递给您的生产者
RingBuffer<Message> ringBuffer = disruptor.start();
Producer producer = new Producer(ringBuffer);
完整代码可以在这里找到 Github 链接
于 2014-01-14T06:38:52.423 回答
2
我建议你看一下 LMAX 代码LMAX 源代码测试目录中的测试目录 。在我看来,它是你可以用 LMAX 做的所有事情的最佳来源。对于简单的例子,请看下面的链接简单的例子
我还建议您查看DSL 示例。
于 2016-01-11T07:59:30.847 回答