我想学习Disruptor framework。谁可以给我一个helloworld示例,可以使用Java程序语言在main方法中运行?
答案 0 :(得分:12)
这是一个如何使用Disruptor库的简单,可运行的示例。示例使用Disruptor库的2.10.4版本编写。
https://github.com/trevorbernard/disruptor-examples
我也在这个帖子上发帖:The simplest and actual example code of LMAX Disruptor
答案 1 :(得分:4)
这里还有一个来自我身边。我尝试了一个使用开源Lmax库的破坏者示例 我认为使用lmax disruptor(而不是disruptor的内部)背后的想法是创建消息调度程序和注册事件监听器,如消费者。
您创建了一个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注册处理程序
disruptor.handleEventsWith(handler);
启动该破坏者并将返回的RingBuffer传递给您的制作人
RingBuffer<Message> ringBuffer = disruptor.start();
Producer producer = new Producer(ringBuffer);
可在此处找到完整代码 Github link
答案 2 :(得分:2)
我建议你看一下LMAX代码LMAX Source Code Test Directory 中的测试目录。在我看来,它是您使用LMAX可以做的所有事情的最佳来源。有关简单示例,请查看以下链接Simple Example
我还建议您查看DSL examples.