मूल रूप से 10 नवंबर, 2017 को ObjectRocket.com/blog पर प्रकाशित हुआ।
चूंकि Elasticsearch® क्लस्टर के लिए सभी Rackspace ObjectRocket कई क्लाइंट नोड्स के साथ आते हैं, एक सामान्य प्रश्न जो हम अपने ग्राहकों से प्राप्त करते हैं, वह है हम उन सभी से कनेक्ट करने के लिए लोड बैलेंसर प्रदान क्यों नहीं करते हैं।
आपकी प्राथमिकताओं के आधार पर, आप क्लस्टर विफलता के बिंदु के रूप में एकल नोड से एकल कनेक्शन देख सकते हैं। एक लोडबैलेंसर कर सकता है कनेक्शन के एक पूल को प्रबंधित करने के लिए प्रभावी साबित होता है। हालांकि, Elasticsearch को लोडबैलेंसर के बिना काम करने के लिए डिज़ाइन किया गया है। इस ब्लॉग पोस्ट में, हम Elasticsearch में प्रदान किए गए सभी क्लाइंट का उपयोग करने के तरीके के बारे में जानेंगे।
पायथन सेटअप
आइए Python® सेटअप को देखें:
from elasticsearch import Elasticsearch
Import certifi
es = Elasticsearch(['dc-port-0.es.objectrocket.com', 'dc-port-1.es.objectrocket.com', 'dc-port-2.es.objectrocket.com', 'dc-port-3.es.objectrocket.com'],
http_auth=('YOUR_USERNAME', 'YOUR_PASSWORD'),
port=12345,
use_ssl=True,
verify_certs=True,
ca_certs=certifi.where(),
)
पहला तर्क आपको दिखाता है कि Elasticsearch मेजबानों की एक सूची स्वीकार करता है। इसका मतलब है कि क्लाइंट अपने दम पर थीसअप के साथ जारी रख सकता है। सेटअप बीट्स जैसे अन्य टूल के समान है। सेटअप स्क्रिप्ट निम्न उदाहरण के समान होगी:
output:
elasticsearch:
hosts: ["https://dc-port-0.es.objectrocket.com:port", "https://dfw-port-1.es.objectrocket.com:port", "https://dfw-port-2.es.objectrocket.com:port", "https://dfw-port-3.es.objectrocket.com:port"]
# HTTP basic auth
username: "YOUR_USERNAME"
password: "YOUR_PASSWORD"
उपलब्ध अधिकांश टूल और क्लाइंट एकाधिक होस्ट का समर्थन करते हैं। आपके लिए इसे आसान बनाने के लिए, हम Python®, Ruby, C#, Java®, Javascript®, Go, Logstash, और Beats के लिए ObjectRocket UI में कनेक्शन स्निपेट शामिल करते हैं। बस वह तकनीक चुनें जिसका आप उपयोग कर रहे हैं और फिर स्निपेट को अपने होस्टनाम के साथ पहले से भरे हुए कॉपी करें।
ऐप्लिकेशन के लिए विकल्प जो एक से अधिक होस्ट नहीं लेंगे
कुछ एप्लिकेशन मेजबानों की सूची नहीं बनाते हैं। सबसे उल्लेखनीय किबाना® है, जो एकल मेजबान को स्वीकार करता है। इसे हल करने के लिए, आप कुछ विकल्पों का उपयोग कर सकते हैं।
अपने ऐप के प्रत्येक भाग को एक भिन्न क्लाइंट पर इंगित करें
गैर-मिशन-महत्वपूर्ण उपयोगों और अनुप्रयोगों के लिए, आप एकल क्लाइंट नोड पर इंगित कर सकते हैं। जब तक एप्लिकेशन में अत्यधिक-उच्च अनुरोध दर न हो, एक एकल क्लाइंट लोड का प्रबंधन करने में सक्षम होना चाहिए। यदि आपके पास इस प्रकार के कई एप्लिकेशन हैं, तो लोड को संतुलित करने के लिए प्रत्येक को एक अलग क्लाइंट पर इंगित करें।
स्थानीय रूप से शेष राशि लोड करें
कुछ मामलों में जहां क्लाइंट या एप्लिकेशन इसका समर्थन नहीं करता है, और आपको क्लाइंट कनेक्शन में अतिरेक की आवश्यकता होती है, आप स्थानीय लोड-बैलेंसिंग सेट कर सकते हैं। आप इसे nginx®, HAProxy®, और अन्य के साथ कर सकते हैं, या बस डोमेन नाम सिस्टम (DNS) में एक स्थानीय होस्टनाम सेट कर सकते हैं जो Elasticsearch क्लाइंट के बीच राउंड-रॉबिन का उपयोग करता है। एक बार फिर, हम बहुत कम मामलों को देखते हैं जहां यह आवश्यक है, लेकिन जब यह सामने आता है तो समाधान उपलब्ध होते हैं।
निष्कर्ष
आपके सामने आने वाला लगभग हर परिदृश्य आपको उन मेजबानों की एक सूची प्रदान करने की अनुमति देता है जो आपके लिए संतुलन को संभालते हैं, लेकिन, चुटकी में, स्थानीय स्तर पर संतुलन लोड करने में आपकी मदद करने के लिए कुछ उदाहरण हैं।
रैकस्पेस डीबीए सेवाओं के बारे में अधिक जानें।
कोई भी टिप्पणी करने या प्रश्न पूछने के लिए फीडबैक टैब का उपयोग करें। आप विक्रय चैट . पर भी क्लिक कर सकते हैं अभी चैट करने और बातचीत शुरू करने के लिए।