2015-01-29 6 views
7

के बाद बंद करें() मेरे पास एक webservice API है जो क्लाइंट को कैसंड्रा में डालने की इजाजत देता है। मैंने डेटास्टैक्स (http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/Session.html) के पृष्ठ पर दस्तावेज़ पढ़ा है जिसमें कहा गया है कि हमें एप्लिकेशन के अंत तक सत्र और क्लस्टर ऑब्जेक्ट रखना चाहिए। मैं सोच रहा था कि क्या मुझे प्रत्येक वेब एपीआई कॉल के बाद session.close() और cluster.close() को कॉल करना चाहिए या जब तक मैं वेब सर्वर बंद नहीं करता तब तक मैं सत्र को तब तक रखता हूं?क्या मुझे session.close() और क्लस्टर कॉल करना चाहिए। प्रत्येक वेब एपीआई कॉल

+1

फ़ोरम साइट्स के विपरीत, हम "धन्यवाद" या "किसी भी सहायता की सराहना नहीं करते हैं, या हस्ताक्षर [so] का उपयोग नहीं करते हैं। देखें "[चाहिए 'हाय', 'धन्यवाद,' टैगलाइन, और नमस्कार पदों से हटा दिए जाएंगे?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - से-पोस्ट-पोस्ट-पोस्ट) बीटीडब्ल्यू, यह "अग्रिम धन्यवाद" है, न कि "उन्नत में धन्यवाद"। –

उत्तर

9

प्रत्येक बार जब आप अनुरोध प्राप्त करते हैं तो मैं Session बनाने के खिलाफ सलाह दूंगा। प्रत्येक बार जब आप SessionCluster.connect के माध्यम से बनाते हैं तो जावा-ड्राइवर आपके कैसंड्रा क्लस्टर में कई होस्टों के लिए कनेक्शन पूल बनाएगा।

उदाहरण के लिए, डिफ़ॉल्ट सेटिंग्स का उपयोग करते हुए, यदि आपके पास एक ही डेटासेंटर में 8 कैसंड्रा नोड्स हैं, तो ड्राइवर के 2.0.9 संस्करण के साथ यह प्रत्येक होस्ट के लिए 8 पूल कनेक्शन बनाएगा (यह अगले संस्करण में 2 में बदल जाएगा)। प्रत्येक बार जब आप Session बनाते हैं तो यह 64 कनेक्शन बनाएगा।

यह साझा करने के लिए अधिक बेहतर होगा कि आपका वेब सर्वर उपयोग कर सकें Session। ड्राइवर प्रति कनेक्शन एकाधिक अनुरोध (2.0.x में डिफ़ॉल्ट रूप से डिफ़ॉल्ट प्रति डिफ़ॉल्ट 128) प्रबंधित कर सकता है, इसलिए एकल Session ऑब्जेक्ट साझा करने में विवाद के बारे में चिंता करने की आवश्यकता नहीं है।

+4

एंडी का वर्णन करने के अलावा, यह पोस्ट http://www.datastax.com/dev/blog/4-simple- नियम-जब-उपयोग-द-डेटास्टैक्स-ड्राइवर-फॉर-कैसंड्रा आपको यह सुनिश्चित करने के लिए बुनियादी नियमों का एक सेट प्रदान करता है कि आप एपीआई –

+1

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

+0

सही। आप कैसंद्रा से जुड़ने के लिए कितने ग्राहक योजना बना रहे हैं? ड्राइवर में कॉन्फ़िगरेशन की क्षमता है प्रत्येक नोड में आप कितने कनेक्शन बनाते हैं, इसके लिए गार्ड। यदि आप कैसंद्रा से कनेक्ट होने वाले बड़ी संख्या में क्लाइंट होने के बारे में चिंतित हैं, तो यह आपके लिए कैसंड्रा को इंटरफ़ेस करने वाली इंटरमीडिएट सेवाओं का एक अच्छा विचार हो सकता है। इसका एक अच्छा उदाहरण मोबाइल ऐप है, आप नहीं चाहते हैं कि प्रत्येक मोबाइल ऐप कैसंड्रा के साथ कनेक्शन करे? आपके पास बैकएंड सर्वर होगा जो मोबाइल ऐप संचार करता है जो ऐप की ओर से कैसंड्रा के अनुरोध करता है। –

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