2013-10-01 11 views
10

here: तूफान को कई भाषाओं के साथ संगत होने के लिए बहुत शुरुआत से डिजाइन किया गया था, तूफान में तूफान और बहाव उपयोग पर सी ++ स्पॉट/बोल्ट लिखने के लिए कैसे करें। निम्बस एक थ्रिफ्ट सेवा है और टोपोलॉजीज को थ्रिफ्ट संरचनाओं के रूप में परिभाषित किया जाता है। थ्रिफ्ट का उपयोग किसी भी भाषा से तूफान का उपयोग करने की अनुमति देता है।तूफान

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

लेकिन मुझे आश्चर्य है कि सी ++ में टोपोलॉजी कैसे लिखें और इसे उसी तरह तैनात करें। सी ++ आधारित टोपोलॉजी को क्रमबद्ध करने और जावा के लिए उसी तरह टोपोलॉजी को निष्पादित/निष्पादित करने के लिए थ्रिफ्ट सहायता करता है?

मैंने इस संबंध में link1link2 लिंक देखे हैं और एकमात्र समाधान शेल्बॉल्ट का उपयोग कर रहा है। जो प्रक्रिया को आमंत्रित करता है और इसके साथ मानक I/o पर संचार करता है।

थ्रिफ्ट मार्ग का उपयोग करने के लिए, क्या हमें सी ++ में तूफान कोर को फिर से लिखना होगा? इसके अलावा थ्रिफ्ट का उपयोग क्यों करें जब यह केवल जेवीएम भाषाओं का समर्थन करता हो? थिफ्ट का उपयोग पाइथन/सी ++ जैसी भाषाओं के लिए बिल्कुल नहीं किया जाता है।

उत्तर

4

मुझे यकीन नहीं है कि मैं आपका प्रश्न सही ढंग से समझ रहा हूं - मेरी समझ में आप Is it possible [without the Shebolt hack] to use Storm [with Thrift as comm protocol] with C++-written bolts and with C++ as the language that creates the topology पूछ रहे हैं।

इस प्रश्न के अन्य उत्तरों की कमी और मेरे अपने शोध के आधार पर मुझे लगता है कि आपकी समस्या के लिए कोई पूर्ण, उपयोग योग्य कार्यान्वयन नहीं है।

इसलिए यदि आपको वास्तव में तूफान का उपयोग करना है (इसका सामान्य उपयोगकेस जेवीएम है, तो अगर यह सैद्धांतिक रूप से किसी भी भाषा के साथ काम कर सकता है, तो इसका मतलब यह नहीं है कि अन्य भाषाओं के लिए पारिस्थितिक तंत्र है) और सी ++, आपके पास नहीं है विकल्प लेकिन शेबॉल्ट हैक का उपयोग करने या खुद को बहाव संशोधित करने के लिए।

जैसा कि आप जानते हैं, थ्रिफ्ट स्वयं को सी ++ में भी भेज दिया गया है। इसलिए सी ++ में एपीआई कॉल को फिर से बनाना संभव है। असल में, आपको the Java TopologyBuilder पोर्ट करना होगा। सी ++ तरफ, आप with the Thrift C++ tutorial शुरू कर सकते हैं।

यह कुछ प्रकार का हैक भी है, क्योंकि आप मूल रूप से केवल ढेर के आधे हिस्से का पुनर्निर्माण करते हैं (इस मामले में थ्रिफ्ट के ऊपर), लेकिन आम तौर पर आपके पास स्टॉर्म जैसे सिस्टम डिज़ाइन के साथ बहुत कम विकल्प हैं। उदाहरण के लिए, MySQL द्विआधारी प्रोटोकॉल का पुनर्निर्माण किया गया है से-scr

जब तक किसी को भी आप के लिए काम करते हैं (जो मैं पूरी तरह से मेरी अनुसंधान के क्षेत्र में छोड़ दिया था) किया है मैं इसे अपने आप को ऐसा करने के लिए की तुलना में कोई विकल्प दिखाई (भी हो सकता है तूफान आपके उपयोगकेस के लिए सबसे अच्छा उपकरण नहीं है !?

शैलबॉल्ट के अलावा एक और हैक (जो और भी जटिल और शायद धीमी हो सकती है) आपके लिए पर्याप्त है, तो आप सी ++ के अंदर से एक जेवीएम शुरू करने का प्रयास कर सकते हैं, उदाहरण के लिए this SO post देखें। मुझे इसकी सिफारिश नहीं करनी है।

यदि आपको वैकल्पिक वितरित कार्य कतार की आवश्यकता है, तो मुझे पाइथन वातावरण में सेलेरी के साथ अच्छा अनुभव हुआ है, हालांकि मुझे सी ++ में इसका उपयोग करने में कोई अनुभव नहीं है (मैं आमतौर पर ज़ीरोएमक्यू के साथ पायथन को नियंत्रित करता हूं, या अपना खुद का ज़ीरोएमक्यू-आधारित लिखता हूं जहां आवश्यक हो कतार, लेकिन यह कोई सार्वभौमिक समाधान नहीं है)।

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