2015-11-18 10 views
7

मैं ग्राहक नोड के बारे में Elasticsearch सवालों की जोड़ी:Elasticsearch क्लाइंट नोड्स कैसे सेट करें?

  1. मैं कह सकते हैं: किसी भी नोड्स जब तक वे HTTP पोर्ट खोल रहे हैं, मैं के रूप में "ग्राहक" नोड्स उन्हें इलाज कर सकते हैं, क्योंकि हम खोज कर सकते हैं/इस नोड के माध्यम से सूचकांक। मेरी कोड में 9200:

  2. असल में हम ग्राहक नोड जब cluster=false और data=false, अगर मैं 10 ग्राहक नोड्स की स्थापना की है, मैं अपने ग्राहक के पक्ष में मार्ग की जरूरत है के रूप में नोड का इलाज, मेरा मतलब है अगर मैं clientOne निर्दिष्ट ईएस पोर्टल के रूप में, क्लाइंटऑन अन्य क्लाइंट नोड्स के लिए अन्य HTTP अनुरोधों को आगे भेज देगा, अन्यथा, क्लाइंटऑन बहुत अधिक दबाव में होगा। यानी वे क्लाइंट नोड्स के बीच एक दूसरे के साथ संवाद करते हैं?

  3. जब मैं ईएस क्लस्टर में क्लाइंट नोड्स निर्दिष्ट करता हूं, तो क्या मुझे अन्य नोड्स HTTP पोर्ट बंद करना चाहिए? क्योंकि हम केवल क्लाइंट नोड्स से पूछ सकते हैं।

  4. क्या आपको लगता है कि एक ही मशीन में डेटा नोड और क्लाइंट नोड दोनों सेट करना आवश्यक है, या केवल डेटा नोड क्लाइंट नोड के रूप में कार्य करता है, वैसे भी यह एक ही मशीन में है?

  5. यदि कम खोज के दौरान ईएस क्लस्टर को भारी/अक्सर अनुक्रमित किया जाएगा, तो मुझे क्लाइंट नोड सेट अप करने की आवश्यकता नहीं है, क्योंकि क्लाइंट नोड डेटा एकत्र करने के लिए अच्छा है, है ना?

  6. सामान्य खोज/अनुक्रमणिका उद्देश्य के लिए मुझे http पोर्ट या टीसीपी पोर्ट का उपयोग करना चाहिए, कृपया ग्राहक परिप्रेक्ष्य में क्या अंतर है?

+3

यह बहुत मुश्किल नहीं है, केवल एक ही प्रश्न में क्रैक किए गए बहुत सारे प्रश्न हैं, जो इसकी समग्र गुणवत्ता को कम करते हैं, क्योंकि इससे लोगों को उनके विषय का सही उत्तर खोजने के लिए एक विशिष्ट विषय की तलाश करना कठिन हो जाएगा। एक सवाल सिर्फ एक प्रश्न होना चाहिए, छह प्रश्न, छह अलग-अलग प्रश्न होना चाहिए। – Val

+1

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

उत्तर

18
  1. हाँ, आप बंदरगाह 9200 खुला है कि किसी भी नोड के लिए http के माध्यम से प्रश्नों भेज सकते हैं।

  2. node.data के साथ: false और node.master: false, आपको "client node" मिलता है। ये आपके डेटा नोड्स से अनुक्रमण और ऑफ़लाइन ट्रैफ़िक ऑफ़लोडिंग के लिए उपयोगी हैं। यदि आपके पास उनमें से 10 हैं, तो आप उनके सामने लोड बैलेंसर रखना चाहते हैं।

  3. समापन डेटा नोड के http बंदरगाह (http.enabled: गलत), क्लाइंट के अनुरोध (शायद अच्छा) की सेवा करने से बनाए रखते हुए, हालांकि यह भी उन्हें आँकड़े के लिए सीधे curl'ing से रोकेगा, आदि

  4. क्लाइंट नोड्स उपयोगी हैं (देखें # 2), इसलिए मैं यातायात को सीधे आपके डेटा नोड्स पर रूट नहीं करूंगा। चाहे आप हार्डवेयर के उसी टुकड़े पर क्लाइंट और डेटा नोड दोनों चलाते हैं, उस मशीन की कॉन्फ़िगरेशन पर निर्भर होंगे (क्या आपके पास पर्याप्त रैम है, आदि)।

  5. क्लाइंट नोड अनुक्रमण के लिए भी उपयोगी हैं, क्योंकि वे जानते हैं कि कौन से डेटा नोड को भंडारण के लिए डेटा प्राप्त करना चाहिए। यदि आपने इसके बजाय एक यादृच्छिक डेटा नोड को एक इंडेक्सिंग अनुरोध भेजा है, तो बाधाएं अधिक होंगी कि उसे उस अनुरोध को किसी अन्य नोड पर रीडायरेक्ट करना होगा। यदि आप क्लाइंट नोड्स बना सकते हैं तो यह समय और संसाधनों की बर्बादी है।

  6. अपने क्लाइंट क्लस्टर में शामिल होने से उन्हें क्लस्टर के बारे में अधिक जानकारी मिल सकती है, लेकिन http का उपयोग करके उन्हें अधिक सामान्य "ब्लैक बॉक्स" इंटरफ़ेस मिल जाता है। Http के साथ, आपको अपने ग्राहकों को अपने ES नोड्स के समान संस्करण में रखने की आवश्यकता नहीं है।

आशा है कि मदद करता है।

+0

महान उत्तर !!! मेरे पास अभी दो और प्रश्न हैं: उत्तर के लिए (2): क्लाइंट नोड्स लोड संतुलन के लिए एक-दूसरे से अनुरोध नहीं करते हैं इसलिए मुझे उनके सामने लोडबैंसर रखना होगा, है ना? उत्तर के लिए (5): यदि हम डिफ़ॉल्ट रूप से मास्टर = सत्य और डेटा = सत्य हैं, तो क्लस्टर में कोई क्लाइंट नोड नहीं है, इसलिए, जैसा कि आपने बताया है कि बाधाएं अधिक होंगी, है ना? आपका बहुत बहुत धन्यवाद! – Jack

+0

उत्तर 2 पहले से ही कहता है, "आप उनके सामने लोड बैलेंसर रखना चाहते हैं"। उत्तर 5 के लिए, यदि आपके पास 5 डेटा नोड्स थे और उन्हें डेटा को सीधे यादृच्छिक रूप से भेजा गया था, तो आप गलत सर्वर (और डेटा को स्थानांतरित करने के ऊपरी हिस्से) को 80% समय पर दबाएंगे। क्लाइंट नोड्स का उपयोग करना इसे रोक देगा। –

+0

बहुत बहुत धन्यवाद! उत्तर 5 के लिए, मेरा मतलब डिफ़ॉल्ट ईएस क्लस्टर द्वारा प्रत्येक नोड को मास्टर = सत्य और डेटा = सत्य के रूप में सेट किया गया है, इसलिए डिफ़ॉल्ट रूप से कोई क्लाइंट नोड नहीं है। तो डिफ़ॉल्ट रूप से क्लस्टर अनुकूलित नहीं किया गया है, हमें बेहतर अग्रेषण के लिए क्लाइंट नोड्स निर्दिष्ट करना होगा, है ना? – Jack