কম্পিউটার

লোড ব্যালেন্সার ছাড়াই একাধিক ইলাস্টিকসার্চ ক্লায়েন্ট নোডের সাথে কীভাবে সংযোগ করবেন

মূলত 10 নভেম্বর, 2017, ObjectRocket.com/blog-এ প্রকাশিত৷

লোড ব্যালেন্সার ছাড়াই একাধিক ইলাস্টিকসার্চ ক্লায়েন্ট নোডের সাথে কীভাবে সংযোগ করবেন যেহেতু Elasticsearch®clusters-এর জন্য সমস্ত Rackspace ObjectRocket একাধিক ক্লায়েন্ট নোডের সাথে আসে, তাই আমাদের গ্রাহকদের কাছ থেকে আমরা একটি সাধারণ প্রশ্ন পাই কেন আমরা তাদের সকলের সাথে সংযোগ করার জন্য একটি লোড ব্যালেন্সার প্রদান করি না।

আপনার পছন্দের উপর নির্ভর করে, আপনি ক্লাস্টার ব্যর্থতার একটি পয়েন্ট হিসাবে একটি একক নোডের সাথে একটি একক সংযোগ দেখতে পারেন। একটি লোডব্যালেন্সার পারি সংযোগের একটি পুল পরিচালনা করতে কার্যকর প্রমাণিত হয়। যাইহোক, Elasticsearch একটি লোডব্যালেন্সার ছাড়া কাজ করার জন্য ডিজাইন করা হয়েছে। এই ব্লগ পোস্টে, আমরা ইলাস্টিকসার্চে আমাদের দেওয়া সমস্ত ক্লায়েন্টকে কীভাবে ব্যবহার করব তা নিয়ে আলোচনা করি৷

লোড ব্যালেন্সার ছাড়াই একাধিক ইলাস্টিকসার্চ ক্লায়েন্ট নোডের সাথে কীভাবে সংযোগ করবেন

পাইথন সেটআপ

আসুন পাইথন® সেটআপ দেখি:

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"

উপলব্ধ বেশিরভাগ সরঞ্জাম এবং ক্লায়েন্ট একাধিক হোস্ট সমর্থন করে। আপনার জন্য এটি সহজ করার জন্য, আমরা পাইথন®, রুবি, সি#, Java®, Javascript®, Go, Logstash এবং Beats-এর জন্য অবজেক্ট রকেট UI-তে সংযোগ স্নিপেট অন্তর্ভুক্ত করি। আপনি যে প্রযুক্তিটি ব্যবহার করছেন তা বেছে নিন এবং তারপরে আপনার হোস্টনামগুলি পূর্ব-জনসংখ্যা সহ স্নিপেটটি অনুলিপি করুন৷

লোড ব্যালেন্সার ছাড়াই একাধিক ইলাস্টিকসার্চ ক্লায়েন্ট নোডের সাথে কীভাবে সংযোগ করবেন

অ্যাপ্লিকেশনের বিকল্প যা একাধিক হোস্ট গ্রহণ করবে না

কয়েকটি অ্যাপ্লিকেশন হোস্টের একটি তালিকা তৈরি করে না। সবচেয়ে উল্লেখযোগ্য হল Kibana®, যা একটি একক হোস্ট গ্রহণ করে। এটিকে ঘিরে কাজ করার জন্য, আপনি কয়েকটি বিকল্প ব্যবহার করতে পারেন।

আপনার অ্যাপের প্রতিটি অংশকে একটি ভিন্ন ক্লায়েন্টের দিকে নির্দেশ করুন

অ-মিশন-সমালোচনামূলক ব্যবহার এবং অ্যাপ্লিকেশনগুলির জন্য, আপনি একটি একক ক্লায়েন্ট নোডে নির্দেশ করতে পারেন। যতক্ষণ না অ্যাপ্লিকেশানটিতে উচ্চ-উচ্চ অনুরোধের হার থাকে, একজন একক ক্লায়েন্ট লোড পরিচালনা করতে সক্ষম হওয়া উচিত। যদি আপনার কাছে এই ধরনের বেশ কয়েকটি অ্যাপ্লিকেশন থাকে, তবে লোডের ভারসাম্য বজায় রাখতে প্রতিটিকে আলাদা ক্লায়েন্টের দিকে নির্দেশ করুন৷

স্থানীয়ভাবে ব্যালেন্স লোড করুন

কয়েকটি ক্ষেত্রে যেখানে ক্লায়েন্ট বা অ্যাপ্লিকেশন এটিকে সমর্থন করে না এবং আপনার ক্লায়েন্ট সংযোগগুলিতে অপ্রয়োজনীয়তা প্রয়োজন, আপনি স্থানীয় লোড-ব্যালেন্সিং সেট আপ করতে পারেন। আপনি এটি nginx®, HAProxy®, এবং অন্যান্যদের সাথে করতে পারেন, অথবা শুধুমাত্র একটি স্থানীয় হোস্টনামেইন ডোমেন নেম সিস্টেম (DNS) সেট আপ করতে পারেন যা ইলাস্টিকসার্চ ক্লায়েন্টদের মধ্যে রাউন্ড-রবিন ব্যবহার করে। আবার, আমরা খুব কম কেস দেখি যেখানে এটি প্রয়োজনীয়, কিন্তু যখন এটি আসে তখন সমাধান পাওয়া যায়।

উপসংহার

আপনার দেখা প্রায় প্রতিটি পরিস্থিতিই আপনাকে হোস্টের একটি তালিকা সরবরাহ করার অনুমতি দেয় যা আপনার জন্য ভারসাম্য পরিচালনা করে, কিন্তু, এক চিমটে, এমন উদাহরণ রয়েছে যা আপনাকে স্থানীয়ভাবে ব্যালেন্স লোড করতে সহায়তা করে।

Rackspace DBA পরিষেবা সম্পর্কে আরও জানুন৷

কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাব ব্যবহার করুন। এছাড়াও আপনিসেলস চ্যাট এ ক্লিক করতে পারেন৷ এখন চ্যাট করতে এবং কথোপকথন শুরু করতে।


  1. আপনার অবজেক্ট রকেট উদাহরণের সাথে কীভাবে JSONStudio ব্যবহার করবেন

  2. অবজেক্ট রকেট ইলাস্টিকসার্চে কিবানা 4 এর সাথে আপ এবং রানিং

  3. Windows 10

  4. কোনও সফ্টওয়্যার ছাড়াই উইন্ডোজে একাধিক ফাইলের নাম কীভাবে দ্রুত পুনঃনামকরণ করবেন