2013-05-16 8 views
5

मेरी Storm टोपोलॉजी में, स्ट्रीम स्ट्रीम करते समय, मैं कुछ भविष्य के बिंदुओं तक कुछ संदेशों की प्रसंस्करण में देरी करना चाहता हूं। ऐसा करने के लिए कुछ उचित विकल्प क्या हैं?तूफान में विलंबित कतार/संदेश प्रसंस्करण

  • जावा के Thread.sleep का उपयोग करना:

    अब तक, मैं निम्नलिखित बारे में सोचा है। (हालांकि, कुछ विचार-विमर्श के आधार पर, यह एक सिफारिश की जिस तरह से कुशलतापूर्वक तूफान के संसाधनों का उपयोग करने के लिए है।)

  • एक देरी कतार प्रयोग करें ...
    • विशेष रूप से, java.util.concurrent.DelayQueue प्रयास करें।
    • क्या कोशिश करने के लायक अन्य कार्यान्वयन हैं?
  • क्या तूफान में एक संदेश में देरी के लिए कुछ एपीआई है जिसे मैंने अनदेखा किया है?
  • क्या ज़ीरोएमक एक देरी संदेश API प्रदान करता है जो तूफान (यदि संशोधित) का लाभ उठा सकता है?
+0

क्या आप कुछ विचार दे सकते हैं कि आप ऐसा क्यों करना चाहते हैं? यदि आप इस सामान को संसाधित करने के लिए तैयार नहीं हैं, तो आप इसे अपने तूफान टोपोलॉजी में क्यों शुरू कर रहे हैं? –

+2

मेरी पहली प्रतिक्रिया: क्यों पूछें क्यों? क्या प्रश्न को समझना या जवाब देना महत्वपूर्ण है? कई कारण हैं कि एक ट्यूपल में देरी (या रीशेड्यूलिंग) क्यों उपयोगी है। मेरा ट्यूपल प्रोसेसिंग डेटा के विशुद्ध रूप से कार्यात्मक परिवर्तनों के बारे में नहीं है। मेरे मामले में, एक टुपल को संसाधित करने में सिस्टम के बाहर कुछ की स्थिति को कैप्चर करना और अन्य धाराओं के साथ एकीकृत करना शामिल है। चूंकि यह समय के साथ बदलता है, इसलिए मैं उस स्थिति को नियंत्रित अंतराल पर कैप्चर करना चाहता हूं। ऐसी एक आवश्यकता बाहरी संसाधन का उपभोग नहीं करना है। –

उत्तर

2

समय-देरी कतार लागू करने के लिए बाहरी संदेश कतार का उपयोग करें।

के बाद तूफान गलती सहिष्णु है और क्षैतिज वितरित, यह मतलब होगा एक संदेश कतार कि उस शैली फिट बैठता है, इस तरह के रूप लेने के लिए:

  • काफ्का
  • अमेज़न SQS
  • RabbitMQ
5

हम थोक में लंबित tuples को संसाधित करने के लिए टोपोलॉजी टिक टुपल्स का उपयोग कर रहे हैं। यह मूल रूप से उन्हें हर सामान्य ट्यूपल पर स्मृति में संग्रहीत करता है और जब इसे टिक टुपल प्राप्त होता है तो यह उन्हें थोक/पाइपलाइन प्रोसेसिंग का उपयोग करके भंडारण/अनुक्रमण में संसाधित करता है।

हम उन मामलों में रेडिस का भी उपयोग करते हैं जहां हमारे पास वॉल्यूम में भारी स्पाइक्स हैं, यदि वॉल्यूम स्पाइक ने सभी टुपल्स को प्रत्येक मेजबान पर स्थानीय रेडिस स्टोरेज पर रीडायरेक्ट किया है और फिर वॉल्यूम मरने के बाद टोपोलॉजी प्रोसेसिंग में वापस धकेल दिया है। हमारी स्थिति आपके लिए लागू नहीं हो सकती है, बस मेरे 2 सी।

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