हम एडब्ल्यूएस किनेसिस स्ट्रीम से जुड़े स्पार्क स्ट्रीमिंग का उपयोग कर रहे हैं ताकि हम जो मीट्रिक्स प्राप्त कर रहे हैं उन्हें एकत्रित (प्रति मिनट) और उन्हें उपलब्ध कराने के लिए influxdb को समेकन लिखने के लिए एक वास्तविक समय डैशबोर्ड।Kinesis स्पार्क स्ट्रीमिंग रिसीवर काम करता है
सब कुछ ठीक काम कर रहा है, लेकिन अब हम इस बात पर विचार कर रहे हैं कि हमें तैनाती और सिस्टम की अंतिम विफलताओं के लिए विरामों को कैसे प्रबंधित करना चाहिए।
दस्तावेज़ कहते हैं कि किनेसिस एकीकरण पुस्तकालय विफलताओं, चेकपॉइंट आदि के लिए पहले ही तैयार है, लेकिन मैं यह स्पष्ट करना चाहता हूं कि चेकपॉइंट कैसे काम कर रहा है।
Kinesis रिसीवर अमेज़न सॉफ्टवेयर लाइसेंस (एएसएल) के तहत अमेज़न द्वारा प्रदान की Kinesis क्लाइंट लाइब्रेरी (KCl) का उपयोग कर एक इनपुट DStream पैदा करता है। केसीएल अपाचे 2.0 लाइसेंस प्राप्त एडब्लूएस जावा एसडीके के शीर्ष पर बनाता है और श्रमिकों, चेकपॉइंट्स और शार्ड लीज़ की अवधारणाओं के माध्यम से भार संतुलन, गलती सहनशीलता, चेकपॉइंटिंग प्रदान करता है।
हम किनेसिस के लिए चेकपॉइंट अंतराल को परिभाषित कर सकते हैं, लेकिन जहां तक मैं समझता हूं कि स्ट्रीम के किस बिंदु तक हमने मेट्रिक्स का उपभोग किया है, तब तक यह चिह्नित करने के लिए उपयोग किया जाता है। तो, हमें अभी भी स्पार्क स्ट्रीमिंग से चेकपॉइंटिंग सुविधा का उपयोग करने की आवश्यकता है, है ना?
चूंकि हम प्रति मिनट डेटा एकत्र कर रहे हैं, हमारे बैच अंतराल 60 सेकंड है लेकिन उन 60 सेकंड के दौरान हम लगातार स्ट्रीम से डेटा प्राप्त कर रहे हैं।
- जब मैं (आदेश काम का एक नया संस्करण को तैनात करने में) JavaStreamingContext.stop (...) पर अमल, रिसीवर बंद कर दिया और हो जाएगा चौकी करेंगे:
यहाँ मेरी सवाल कर रहे हैं अंत में अद्यतन किया जाना चाहिए?
- स्पार्क स्ट्रीमिंग चेकपॉइंट कब होगा? नौकरी के हर निष्पादन के बाद? इससे पहले?
- मानते हैं कि हमारे पास चेकपॉइंट दोनों काम कर रहे हैं, हम विफलता के मामले में स्थिरता की गारंटी कैसे दे सकते हैं? ऐसा लगता है कि हर बार चेकपॉइंटिंग स्ट्रीमिंग हो रही है, इसे एक ही समय में किनेसिस को चेकपॉइंट करने की आवश्यकता है, अन्यथा हम एक ही डेटा को फिर से पढ़ सकते हैं। हम इसे कैसे संभालेंगे?
- यदि अंतर्निहित सेवा (इस मामले में influxdb) नीचे है, तो मुझे क्या करना चाहिए? एक पुनः प्रयास तंत्र कार्यान्वित करें? यदि ऐसा है, तो इसे थोड़ी देर बाद पुनः प्रयास करना बंद करना होगा, अन्यथा हम आउट ऑफ़ मेमोरी चलाएंगे।
अग्रिम धन्यवाद!