মূলত ১০ নভেম্বর, ২০১৭-এ ObjectRocket.com/blog-এ প্রকাশিত।
যেহেতু সকল র্যাকস্পেস ObjectRocket ফর ইলাস্টিকসার্চ® ক্লাস্টার একাধিক ক্লায়েন্ট নোডের সাথে আসে, আমাদের কাস্টমাররা যেই সাধারণ প্রশ্নটি করে সেটি হল আমরা কেন একটি লোড ব্যালেন্সার প্রদান করি না সেগুলোর সাথে কানেক্ট করার জন্য।
আপনার পছন্দের ওপর নির্ভর করে, আপনি একটি সিঙ্গেল কানেকশন একটি সিঙ্গেল নোডকে ক্লাস্টার ফেইল্যারের একটি পয়েন্ট হিসেবে দেখতে পারেন। একটি লোড ব্যালেন্সার ক্যান কার্যকর হতে পারে একটি কানেকশন পুল ম্যানেজ করতে। যাইহোক, ইলাস্টিকসার্চ লোড ব্যালেন্সার ছাড়াই কাজ করার জন্য ডিজাইন করা হয়েছে। এই ব্লগ পোস্টে, আমরা দেখব কীভাবে ইলাস্টিকসার্চে আমরা যে সব ক্লায়েন্ট প্রদান করি সেগুলো ব্যবহার করতে হয়।
পাইথন সেটআপ
আসুন পাইথন® সেটআপটি দেখি:
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(), )
প্রথম আর্গুমেন্ট আপনাকে দেখায় যে ইলাস্টিকসার্স হোস্টের একটি লিস্ট এক্সেপ্ট করে। এর মানে ক্লায়েন্ট নিজে সেটআপ চালিয়ে যেতে পারে। সেটআপ অন্যান্য টুলের মত, যেমন Beats। সেটআপ স্ক্রিপ্টটি নিচের উদাহরণের মতো হবে:
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"
অধিকাংশ টুল এবং ক্লায়েন্ট একাধিক হোস্ট সাপোর্ট করে। আপনার জন্য এটি সহজ করতে, আমরা ObjectRocket UI-এ কানেকশন স্নিপেট অন্তর্ভুক্ত করি Python®, Ruby, C#, Java®, Javascript®, Go, Logstash, এবং Beats-এর জন্য। শুধু আপনি যে টেকনোলজি ব্যবহার করছেন সেটি বেছে নিন এবং তারপর আপনার হোস্টনেম প্রি-পপুলেটেড স্নিপেটটি কপি করুন।
এই অ্যাপ্লিকেশনগুলোর বিকল্প যারা একাধিক হোস্ট নেবে না
কয়েকটি অ্যাপ্লিকেশন হোস্টের একটি লিস্ট নেয় না। সবচেয়ে উল্লেখযোগ্য হল Kibana®, যা একটি সিঙ্গেল হোস্ট এক্সেপ্ট করে। এটিকে ওয়ার্কঅরাউন্ড করতে, আপনি কয়েকটি বিকল্প ব্যবহার করতে পারেন।
আপনার অ্যাপের প্রতিটি অংশকে একটি ভিন্ন ক্লায়েন্টে পয়েন্ট করুন
নন-মিশন-ক্রিটিক্যাল ব্যবহার এবং অ্যাপ্লিকেশনের জন্য, আপনি একটি সিঙ্গেল ক্লায়েন্ট নোডে পয়েন্ট করতে পারেন। যদি অ্যাপ্লিকেশনের সুপার-হাই রিকোয়েস্ট রেট না থাকে, তবে একটি সিঙ্গেল ক্লায়েন্ট লোড ম্যানেজ করতে সক্ষম হবে। আপনার যদি এই টাইপের অনেক অ্যাপ্লিকেশন থাকে, তবে প্রতিটিকে একটি ভিন্ন ক্লায়েন্টে পয়েন্ট করুন লোড ব্যালেন্স করতে।
লোকালি লোড ব্যালেন্স করুন
увই কিছু কেসে যেখানে ক্লায়েন্ট বা অ্যাপ্লিকেশন সাপোর্ট করে না, এবং আপনাকে ক্লায়েন্ট কানেকশনে রিডান্ডেন্সির প্রয়োজন, আপনি লোকাল লোড-ব্যালেন্সিং সেট আপ করতে পারেন। আপনি এটি nginx®, HAProxy®, এবং অন্যদের সাথে করতে পারেন, বা শুধু একটি লোকাল হোস্টনেম সেট আপ করুন ডোমেন নেম সিস্টেম (DNS)-এ যেটি রাউন্ড-রোবিন ব্যবহার করে ইলাস্টিকসার্চ ক্লায়েন্টের মাঝপথে। একবার আবার, আমরা খুব কম কেস দেখি যেখানে এটি প্রয়োজন, কিন্তু সমাধান উপলব্ধ যখন এটি আসে।
উপসংহার
প্রায় প্রতিটি সিনেরিও যেটি আপনি এনকাউন্টার করবেন আপনাকে হোস্টের একটি লিস্ট সরবরাহ করতে দেয় যেটি ব্যালেন্সিং হ্যান্ডেল করে আপনার জন্য, কিন্তু, অপছারে, লোকালি লোড ব্যালেন্স করতে সাহায্য করার উদাহরণগুলো বাহিরে আছে।
র্যাকস্পেস DBA সার্ভিস সম্পর্কে আরও জানুন।
ফিডব্যাক ট্যাব ব্যবহার করে মন্তব্য করুন বা প্রশ্ন জিজ্ঞাসা করুন। আপনি সেলস চ্যাট-এ ক্লিক করেও এখনই কথা বলার শুরু করতে পারেন।