2009-09-28 66 views
12

मैं एक जावा वितरित कैशिंग समाधान की तलाश में हूं। हम सुविधाओं चाहते हैं पसंद करती है:वितरित कैशिंग

  • वितरित
  • स्वत: खोज
  • अतिरिक्तता
  • गैर केन्द्रीकृत सब कुछ

हमने इसका विश्लेषण किया जो लगता है टेराकोटा की तरह एक रूपरेखा होने के लिए हम करेंगे कभी भी एक कैशिंग फ्रेमवर्क से चाहते हैं ... हालांकि, ऐसा लगता है कि एक केंद्रीय कैशिंग नोड (ओं) की आवश्यकता होती है जो हमारी एकल-बिंदु-विफलता बन जाती है।

हमारे स्वयं के समाधान को हल करने के अलावा अन्य कोई विचार?

+0

टेराकोटा में एक एसपीओफ़ नहीं है - आप जितना चाहें उतने गर्म बैकअप का उपयोग कर सकते हैं जब एक सक्रिय सर्वर मर जाता है। टेराकोटा एफएक्स के साथ, आप अधिक पैमाने पर कई सक्रिय भी हो सकते हैं। –

उत्तर

6

मैं या तो JBossCache या EhCache (एक distributed cache listener के साथ) सुझाव देते हैं। मैंने दोनों का उपयोग किया है, मुझे दोनों पसंद हैं, और वे दोनों आपकी आवश्यकताओं के अनुरूप हैं।

0

Terracotta भी वितरित कैश प्रदान करता है।

+0

वाणिज्यिक संस्करण केवल यह नहीं है? – cletus

+0

मुझे ऐसा नहीं लगता है अगर आप टेराकोटा ईएस संस्करण का उपयोग करते हैं (देखें http://www.terracotta.org/web/display/enterprise/Products)। 2 अपने ऐप के लिए - - 2 टेराकोटा के लिए मैं नहीं बल्कि 4 होगा : –

4

टेराकोटा ने हाल ही में एक आसान पैकेज में 0hहासिल किया है और केवल एक नोड से क्लस्टर्ड जाने के लिए एहैच कॉन्फ़िगरेशन की कुछ अतिरिक्त पंक्तियों की आवश्यकता है, हालांकि आपको टेराकोटा सर्वर प्रक्रिया भी चलाना है।

टेराकोटा ईएस संस्करण के साथ एहकेचे ओपन सोर्स और उपयोग करने के लिए स्वतंत्र है। वाणिज्यिक लाइसेंस, आप समर्थन, अधिक स्केलिंग, क्षतिपूर्ति, पैच समर्थन चाहते हैं, तो उपलब्ध हैं आदि

टेराकोटा एक केंद्रीय सर्वर सरणी, एक भी केंद्रीय सर्वर का उपयोग करता है, तो असफलता का कोई एक मतलब नहीं है! आप जितना चाहें उतने हॉट बैकअप सर्वर सेट अप कर सकते हैं और सक्रिय सर्वर नीचे जाने पर इन बैकअप सर्वर को कॉन्फ़िगर करने के लिए कॉन्फ़िगर किया जा सकता है। टेराकोटा एफएक्स (वाणिज्यिक उत्पाद) के साथ, आप कई सक्रिय सर्वरों का भी उपयोग कर सकते हैं।

+0

टेराकोटा के साथ मुद्दा यह है कि आदेश की विफलता का कोई एकल बिंदु है करने के लिए आपको एक नंगे न्यूनतम 4 मशीनों (या JVM) पर की आवश्यकता होती है मेरे ऐप के लिए जेवीएम लेकिन इन-जेवीएम कैशिंग क्लस्टरिंग के साथ। –

14

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

+0

नेटवर्क विभाजन की स्थिति में, क्या हैज़लकास्ट सीएपी थ्रोम (https://en.wikipedia.org/wiki/CAP_theorem) में उपलब्धता पर स्थिरता का समर्थन करता है? –

1

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

जहां तक ​​आप जो सुविधाएं देख रहे हैं, उन्हें एक ही उत्पाद, NCache में पाया जा सकता है, क्योंकि उमर ने भी उल्लेख किया है।

4

इन्फिनिसन आज़माएं। इन्फिनिसन कैश को वितरित कैश के रूप में उपयोग किया जा सकता है और इसका उपयोग प्रतिलिपि किए गए कैश के रूप में भी किया जा सकता है। सिंगल पॉइंट विफलता की कोई संभावना नहीं है। वितरित कैश मोड में यह ढेर आकार से अधिक स्थान प्रदान कर सकता है। पर विचार करें कि क्लस्टर में 4 नोड प्रत्येक 1 जीबी हीप आकार और इन्फिनिसन का उपयोग प्रतिलिपि किए गए कैश के रूप में करते हैं, तो कुल आकार क्लस्टर में 1 जीबी है, लेकिन यदि इन्फिनिसन वितरित कैश के रूप में उपयोग किया जाता है और प्रति डेटा आइटम 2 प्रति सेट करता है तो कुल आकार 2 जीबी होगा। http://www.jboss.org/infinispan

+0

हम्म .. के बारे में जानना अच्छा .. –

1

मुझे पार्टी के लिए देर हो चुकी है, लेकिन आपने टेजग्रिड, ओपन सोर्स java distributed cache का प्रयास किया है। इन-मेमोरी डेटा ग्रिड या कुंजी वैल्यू स्टोर के रूप में भी जाना जाता है।

यह आपके सभी बुनियादी जरूरतों को

- Distributed 
- Auto-Discovery 
- Redundancy 
- Non-Centralized 

यह भी split brain और अचानक पुनरारंभ जैसे उन्नत विफलता परिदृश्यों का प्रबंधन करता है जवाब। इसलिए सभी नोड बुद्धिमान हैं इसलिए पूरी तरह से वितरित किए जाते हैं।

आप भी उस टोपोलॉजी का चयन कर सकते हैं जिसका आप उपयोग करना चाहते हैं (विभाजन या प्रतिकृति)। यदि आप अधिक उन्नत टोपोलॉजीज (प्रतिकृति का विभाजन) का उपयोग करना चाहते हैं तो आप maybe buy a license कर सकते हैं।