2012-03-22 15 views
7

मैं Disruptor framework सीखना चाहता हूं। मुझे एक नरक उदाहरण कौन दे सकता है जो जावा प्रोग्राम भाषा के साथ मुख्य विधि में चला सकता है?विघटनकर्ता helloworld उदाहरण

+0

सी [LMAX Disruptor का सबसे सरल और वास्तविक उदाहरण कोड] पर एक नज़र लेने के लिए सुझाव है [1]। [1]: http://stackoverflow.com/questions/9168602/the-simplest-and-actual-example-code-of-lmax-disruptor – Heri

उत्तर

12

यहां एक सरल, चलने योग्य, विघटनकर्ता पुस्तकालय का उपयोग करने का उदाहरण है। उदाहरण विघटन पुस्तकालय के संस्करण 2.10.4 का उपयोग कर लिखा गया है।

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

मैं भी गया है इस सूत्र पर पोस्ट क्रॉस: मेरी तरफ से The simplest and actual example code of LMAX Disruptor

+0

बहुत बहुत शुक्रिया :) – Felix

+0

आधिकारिक डेमो :) https: //github.com/LMAX-Exchange/disruptor/wiki/Getting-Started – Felix

3

यहाँ एक और। मैंने ओपन सोर्स Lmax पुस्तकालयों का उपयोग कर एक विघटनकारी उदाहरण की कोशिश की।
मुझे लगता है कि एलएमएक्स विघटनकर्ता (विघटनकर्ता के आंतरिक नहीं) के उपयोग के पीछे विचार संदेश प्रेषक बनाना और उपभोक्ता जैसे ईवेंट श्रोता पंजीकृत करना है।

संदेश प्रकार निर्दिष्ट करने के साथ आप एक विघटनकर्ता बनाते हैं।

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

आप एक हैंडलर बनाएं disruptor

  disruptor.handleEventsWith(handler); 

प्रारंभ कि disruptor और अपने निर्माता को लौट RingBuffer पारित साथ

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

रजिस्टर हैंडलर

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

पूर्ण कोड यहाँ Github link

0

पाया जा सकता है मैं LMAX कोड LMAX Source Code Test Directory में परीक्षण निर्देशिका पर एक नज़र लेने के लिए सुझाव है। मेरी राय में यह एलएमएक्स के साथ सभी प्रकार की चीजों के लिए सबसे अच्छा स्रोत है। सरल उदाहरण के लिए, कृपया निम्न लिंक पर Simple Example

पर एक नज़र डालें मैं आपको यह भी DSL examples.

संबंधित मुद्दे