2012-03-22 20 views
7

Disruptor framework'u öğrenmek istiyorum. Java program dili ile ana yöntemde çalışabilen bir helloworld örneğini kim verebilir?Disruptor helloworld örneği

+0

See [LMAX bölücünün en basit ve gerçek bir örnek kod] bakmak için öneririm şu bağlantıda Simple Example

bir göz atın [1]. [1]: http://stackoverflow.com/questions/9168602/the-simplest-and-actual-example-code-of-lmax-disruptor – Heri

cevap

12

Burada, Disruptor kitaplığının nasıl kullanılacağı ile ilgili basit, çalıştırılabilir bir örnek. Örnek, Disruptor kütüphanesinin 2.10.4 versiyonunu kullanarak yazılmıştır. Ben de bu konuya yayınlanan çapraz ettik

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

: benim tarafımdan The simplest and actual example code of LMAX Disruptor İşte

+0

çok teşekkürler :) – Felix

+0

resmi demo :) https: //github.com/LMAX-Exchange/disruptor/wiki/Getting-Started – Felix

3

tane daha. Açık kaynaklı Lmax kitaplıklarını kullanarak bir devre kesici örneği denedim.
Lmax bozucusunun (bozulmanın içsel değil) kullanımının arkasındaki fikir, mesaj dağıtıcı oluşturmak ve tüketici gibi olay dinleyicisini kaydetmek olduğunu düşünüyorum.

İleti türünü belirterek bir Bozucu Oluşturursunuz.

Disruptor<Message> disruptor = new Disruptor<Message>(Message.EVENT_FACTORY, 2048, exec);` 

Sen bölücü ve üreticiye iade Ringbuffer geçmesini bozucu

  disruptor.handleEventsWith(handler); 

Başlangıç ​​ile

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); 
      } 
     } 
    }; 

Kayıt işleyicisi bir işleyicisi oluştur

  RingBuffer<Message> ringBuffer = disruptor.start(); 
     Producer producer = new Producer(ringBuffer); 

Tam kod burada Github link