প্রথমে সেনটিনেল কথা বলি।
সেন্টিনেল ব্যর্থতা পরিচালনা করে, এটি HA এর জন্য রেডিসকে কনফিগার করে না। এটি একটি গুরুত্বপূর্ণ পার্থক্য। দ্বিতীয়ত, আপনার পোস্ট করা চিত্রটি একটি খারাপ সেটআপ - আপনি রেডিস নোডগুলি যেভাবে পরিচালনা করছেন সেটি একই নোডে সেন্টিনেল চালাতে চান না run আপনি যখন সেই হোস্টটি হারাবেন তখন আপনি উভয়কেই হারাবেন।
"এটি কি সম্পদের অপচয়?" এটি আপনার ব্যবহারের ক্ষেত্রে নির্ভর করে। সেই সেটআপে আপনার তিনটি রেডিস নোডের দরকার নেই, আপনার কেবল দুটি দরকার। তিনটি আপনার অপ্রয়োজনীয়তা বাড়ায়, তবে প্রয়োজন হয় না। যদি আপনার অতিরিক্ত সংযোজন প্রয়োজন হয় তবে এটি সম্পদের অপচয় নয়। আপনার যদি অতিরিক্ত অর্থের প্রয়োজন হয় না তবে আপনি কেবল একটি রেডিস ইনস্ট্যান্স চালান এবং এটিকে ভাল বলুন - কারণ আরও বেশি চালানো "নষ্ট" হবে।
দুটি ক্রীতদাস চালানোর জন্য আরেকটি কারণ পড়তে হবে বিভক্ত। আবার, আপনার যদি এটির প্রয়োজন হয় তবে এটি অপচয় হবে না।
"উপলব্ধ সংস্থানগুলির সম্পূর্ণ ব্যবহারের কি আরও ভাল উপায় আছে?" আমরা এর উত্তর দিতে পারি না কারণ এটি আপনার নির্দিষ্ট পরিস্থিতি এবং কোডের উপর অনেক বেশি নির্ভরশীল। এটি বলেছে যে যদি সংরক্ষণের জন্য ডেটা পরিমাণ "ছোট" হয় এবং কমান্ডের হার খুব বেশি না হয়, তবে মনে রাখবেন আপনাকে রেডিসের জন্য কোনও হোস্টকে উত্সর্গ করার দরকার নেই।
এখন "রেডিস কি রেডিস সেন্ডিনেলের বিকল্প? এটি সত্যিই আপনার ব্যবহারের ক্ষেত্রে পুরোপুরি নির্ভর করে। রেডিস ক্লাস্টার কোনও এইচএ সমাধান নয় - এটি একাধিক লেখক / বৃহত্তর-র্যাম সমাধান। যদি আপনার লক্ষ্যটি কেবল এইচএ হয় তবে এটি সম্ভবত আপনার পক্ষে উপযুক্ত হবে না। রেডিস ক্লাস্টার সীমাবদ্ধতার সাথে আসে, বিশেষত মাল্টি-কী অপারেশনগুলির আশেপাশে, সুতরাং এটি অগত্যা কোনও সোজা "কেবল ক্লাস্টার ব্যবহার করুন" অপারেশন নয়।
যদি আপনি ভাবেন যে রেডিসে চলমান তিনটি হোস্ট (এবং তিনটি চালানো সেন্ডিনেল) অপ্রয়োজনীয়, আপনি সম্ভবত ক্লাস্টারটিকে আরও বেশি রাখবেন যাতে এর জন্য আরও সংস্থান প্রয়োজন।
আপনি যে প্রশ্নগুলি জিজ্ঞাসা করেছেন সেগুলি সম্ভবত লিখিতভাবে টিকে থাকার পক্ষে খুব বিস্তৃত এবং মতামত ভিত্তিক। আপনার যদি সুনির্দিষ্ট কেস / সমস্যা কাজ করে যাচ্ছেন তবে দয়া করে এটি আপডেট করুন যাতে আমরা নির্দিষ্ট সহায়তা এবং তথ্য সরবরাহ করতে পারি।
নির্দিষ্টকরণের জন্য আপডেট করুন:
আপনার পরিস্থিতিতে সঠিক ব্যর্থতা পরিচালনার জন্য আমি 3 সেন্ডিনেল নিয়ে যাব, একজন আপনার জেবস সার্ভারে চলছে running যদি আপনার কাছে 3 টি জেবাস নোড থাকে তবে প্রতিটির সাথে একটিতে যান। আমার আলাদা নোডে রেডিস পোড (মাস্টার + স্লেভ) থাকত এবং সেন্ডিনেলটি ব্যর্থতা পরিচালনা করতে দেয়।
সেখান থেকে এটি জেবস / জেডিসকে তথ্য এবং সংযোগ ব্যবস্থাপনার জন্য সেন্টিনেল ব্যবহার করার জন্য ওয়্যারিং করার বিষয়। যেহেতু আমি এগুলি ব্যবহার করি না তত দ্রুত অনুসন্ধানে দেখা যাচ্ছে যে জেডিসের পক্ষে এটির সমর্থন রয়েছে, আপনার কেবল এটি সঠিকভাবে কনফিগার করতে হবে। আমি যে কয়েকটি উদাহরণ পেয়েছি সেগুলি সেন্টিনেল এবং https://github.com/xetorthio/jedis/issues/725 এর সাথে জেডিসের উদাহরণ খুঁজছেন যা JedisSentinelPool
পুলটি ব্যবহারের জন্য রুট হওয়ার কথা বলে।
যখন সেন্টিনেল একটি ব্যর্থতা কার্যকর করে তখন ক্লায়েন্টগুলি সংযোগ বিচ্ছিন্ন হয়ে যাবে এবং জেডিস (উচিত?) বর্তমান গুরু কে সেই সেন্টিনেলদের জিজ্ঞাসা করে পুনরায় সংযোগ পরিচালনা করবেন।