2009-08-06 50 views
5

मैं परिदृश्य का पालन करने वाला एक सॉफ्टवेयर प्रोग्राम बना रहा हूं:वितरित सिस्टम, सर्वोत्तम ढांचा?

मेरे पास कई कंप्यूटर हैं, और उनमें से प्रत्येक को क्लस्टर में जोड़ें। क्लस्टर में प्रत्येक कंप्यूटर एक वितरित तालिका में एक फ़ाइल जोड़ सकता है (शब्दकोश, हैशपैप, पर्याप्त तेज़ होना चाहिए)।

तो अब मेरे पास एक ऐसा स्थान है जहां हर कोई देख सकता है कि समूह/क्लस्टर में कौन सी फाइलें हैं। अब समूह/क्लस्टर का कंप्यूटर एक फ़ाइल का अनुरोध करता है। वह वितरित तालिका से फ़ाइल के बारे में सारी जानकारी तक पहुंच सकता है (किस कंप्यूटर पर यह फ़ाइल आदि ढूंढ सकता है ...)।

कुछ तंत्र द्वारा इसे बिंदु बी (कंप्यूटर जिसमें फाइल है) से फ़ाइल को ए (कंप्यूटर जो फ़ाइल का अनुरोध करता है) इंगित करने के लिए फ़ाइल प्राप्त करनी चाहिए।

असल में इसे डेटा प्रतिकृति करना चाहिए।

डेटा प्रतिकृति के रूप में तेजी से संभव के रूप में किया जाना चाहिए: (लेकिन बहुत बड़ी फ़ाइलों के लिए)

तो आप शायद अब तक आश्चर्य है, क्या इस quy के लिए पूछ रहा है, यहाँ यह है। सबसे अच्छा तरीका क्या होगा? मैंने फ्लक्स नेटवर्क की तरह कुछ सोचा।

परिदृश्य के बाद किसी सॉफ्टवेयर के लिए उपयोग करने के लिए सबसे अच्छा ढांचा क्या होगा?

मैं एक जावा फ्रेम के लिए खोज रहा हूं :)। (मुझे क्रॉस-प्लेटफॉर्म को चलाने की आवश्यकता है)

धन्यवाद!

+0

अगर आप अपना समाधान मिला है तो उत्तर के रूप में ऊपर उठाने और चिह्नित करने के लिए मत भूलना! –

उत्तर

0

ऐसा लगता है कि के लिए खोज रहे हैं: Project Voldemort या अन्य Key=>Value datastores which automatic failover, replication आदि

+0

मैं इसे बेहतर तरीके से देखूंगा। यह मेरे विकल्पों में है। –

+0

चूंकि हैज़लकास्ट में "स्टोर()" के रूप में निरंतर विशेषताएं हैं, यह भी एक विकल्प है: http://code.google.com/docreader/#p=hazelcast&s=hazelcast&t=hazelcast इसका उपयोग करना बहुत आसान है! –

1

JXTA सूर्य की जावा सहकर्मी से सहकर्मी ढांचे, और सबसे उपयोग यहाँ की संभावना है।

या Jini देखें और यह सेवा पट्टे, गतिशील खोज और प्रोटोकॉल स्वतंत्र ग्राहक/सर्वर संचार के लिए क्षमता है। जिनी का उपयोग करके आप प्रत्येक सेवा को विशेष विशेषताओं (इस मामले में अपना फ़ाइल नाम?) के साथ प्रकाशित कर सकते हैं, या शायद इसे Javaspaces (मुझे यहां रिक्त स्थान की उचितता के बारे में निश्चित नहीं है)

+0

हां यह सहकर्मी के साथ सहकर्मी है, लेकिन मैं एक वितरित डेटा संरचना को लागू नहीं करना चाहता हूं। –

+0

ध्यान दें कि आपको अपनी डेटा संरचना रिपोर्टिंग मशीन बी की समस्या है, लेकिन फाइल बी होने पर क्या होता है? –

+0

मुझे एक ढांचा मिला है, इसे जेग्रुप कहा जाता है। इसके बारे में सुना है? –

4

जैसा कि मुझे यकीन है कि आप पता चला है कि जावा के लिए वहां कई पुस्तकालय हैं जो आपको इस प्रकार के परेशान मानचित्र को लागू करने की अनुमति देते हैं।

  • Hazelcast - खंड पर नई बच्चे, वास्तव में उपयोग करने के लिए सरल और ConcurrentMap जैसे मानक जावा इंटरफेस की implmentations प्रदान करता है
  • JGroups - वास्तव में सिर्फ समूह संदेश के लिए पुस्तकालय, लेकिन एक DisturbutedHashMap कार्यान्वयन
  • jBoss Cache शामिल हैं - बनाया jgroups के शीर्ष पर वैकल्पिक दृढ़ता और लेनदेन के साथ एक और अधिक पूर्ण परेशान कैशिंग सिस्टम प्रदान करता है
  • Terracotta - बिग और काफी लोकप्रिय, वाणिज्यिक रूप से समर्थित
  • Oracle Coherence - उन सब का पिता, एक कीमत टैग के साथ मैच के लिए

वहाँ अधिक कर रहे हैं (काफी एक बहुत अधिक), इस समय मेरी निजी पसंद Hazelcast है यह पागलपन की हद तक आरंभ करने के लिए आसान है।मैंने सूचीबद्ध सभी कैशिंग ढांचे (मुझे लगता है) पूरी प्रविष्टि को स्मृति में लोड करने में सक्षम होने के लिए सक्षम होने पर (कम से कम अस्थायी रूप से) पर भरोसा करते हैं, यह एक मुद्दा हो सकता है यदि आप बड़ी फ़ाइलों की सामग्री को रखने की कोशिश कर रहे हैं उन्हें।

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

0

वितरित हैशप के लिए ऊपर कुछ अच्छे उत्तर दिए गए हैं।

वास्तव में फ़ाइल को प्रतिलिपि बनाने के लिए यदि संभव हो तो मैं कुछ भी कॉपी नहीं करना चाहूंगा और बस कुछ साझा स्टोरेज समाधान प्राप्त करूंगा। यदि आपको प्रत्येक कंप्यूटर के लिए अलग-अलग डिस्क का उपयोग करना होगा, तो प्रत्येक कंप्यूटर पर एक FTP सर्वर स्थापित करने जैसे कुछ सरल काम करना चाहिए। यह जावा आधारित नहीं होना चाहिए, लेकिन यदि आप जावा केवल समाधान चाहते हैं तो Apache MINA काम कर सकता है।

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