প্রয়োজনীয়তাগুলি: একটি ব্যবহারিক সমাধান রয়েছে যা মেঘ বা যে কোনও প্রকারের পরিবেশের জন্য কাজ করে যেখানে হার্ডওয়্যার লোড ব্যালান্সার, বিজিপি প্রোটোকল এবং সমস্ত কিছুতে অ্যাক্সেস নেই।
একটি আবেদনের আয়ের অনুরোধ নম্বরটি অজানা তবে কোনও ভয় ছাড়াই বর্ধিত লোড প্রত্যাশা পূরণের জন্য যথেষ্ট পরিমাণে বেশি হওয়া উচিত।
আসুন লোডের অনুরূপ প্রকৃতির একটি অ্যাপ্লিকেশন সন্ধান করুন, যেমন লগিং স্টোর এবং অনুসন্ধান অ্যাপ্লিকেশন। আমি দেখেছি এক ।
তারা কি চান:
- সংগ্রহকারীদের জুড়ে ভার ভারসাম্য রক্ষা করুন
- দোষী সহনশীলতার অফার করুন, যদি কোনও সংগ্রাহকের একজন মারা যায় বা সমস্যাগুলির মুখোমুখি হয় তবে আমাদের ডেটা ইনজিস্টিং চালিয়ে যেতে অনুমতি দিন
- আমাদের লগ ভলিউমের বৃদ্ধি সহ অনুভূমিকভাবে স্কেল করুন
তারা ELB সম্পর্কে কী চেষ্টা করেছিল এবং শিখেছে:
- আশানুরূপ কাজ করে না
- ভারী চাপের কারণে বিলম্বিত সমস্যাগুলি
- পর্যাপ্ত পর্যবেক্ষণের সুবিধা নেই
- অনেকগুলি সীমাবদ্ধতা (ওপেন পোর্ট এবং প্রোটোকল সংখ্যা)
তারা রুট ৫৩ দিয়ে কেন বেছে নিলো:
- "রাউন্ড রবিন বেশ বেসল লোড ভারসাম্যহীন, তবে দক্ষতার দিক থেকে এটি আমাদের পক্ষে ভাল কাজ করে"
- "আমরা 53 টি রুট ব্যর্থ স্বাস্থ্য চেকের সুবিধা গ্রহণ করি।"
- "যদি কোনও সংগ্রাহকের সাথে সমস্যা হয়, রুট 53 এটি স্বয়ংক্রিয়ভাবে পরিষেবাটি থেকে সরিয়ে নিয়ে যায়; আমাদের গ্রাহকরা কোনও প্রভাব দেখতে পাবেন না।"
- 53 রুটের সাথে কোনও প্রাক-ওয়ার্মআপের প্রয়োজন নেই
আমাদের বিশাল লগ ভলিউম, অনাকাঙ্ক্ষিত বৈচিত্র্য এবং আমাদের ব্যবসায়ের ধ্রুবক বৃদ্ধি প্রদত্ত লগগ্লির পক্ষে আমাদের উচ্চ-পারফরম্যান্স সংগ্রহকারীদের সুবিধা নেওয়ার জন্য লগলি সবচেয়ে ভাল উপায় হয়ে উঠেছে Rou এটি সংগ্রাহকদের মূল উদ্দেশ্যগুলির সাথে একত্রিত হয়: শূন্য ক্ষতির সাথে নেটওয়ার্ক লাইনের গতিতে ডেটা সংগ্রহ করা, এবং এটি আমাদের লগগ্লিতে যে সমস্ত এডাব্লুএস পরিষেবা ব্যবহার করে তার স্থিতিস্থাপকতা থেকে উপকার পেতে দেয়।
সেই নির্দিষ্ট উদাহরণটি দেখায় যে কিছু পরিস্থিতিতে (লগ সংগ্রাহক, বিজ্ঞাপন সম্পর্কিত পরিষেবা বা অনুরূপ) লোড ব্যালেন্সার অপ্রয়োজনীয় এবং "ডিএনএস স্বাস্থ্য-চেক রাউন্ড রবিন সলিউশন" খুব ভালভাবে কাজ করে।
আসুন দেখে নিই যে ডাব্লুএস ডিএনএস ফেইলওভারকে আবার কী বলে :
ডিএনএস ফেলোভারের সাহায্যে, রুট 53 আপনার ওয়েবসাইটের আউটেজ সনাক্ত করতে পারে এবং আপনার নির্দিষ্ট ব্যবহারকারীদের বিকল্প বা ব্যাকআপ অবস্থানগুলিতে পুনর্নির্দেশ করতে পারে যা আপনি নির্দিষ্ট করেছেন। রুট 53 ডিএনএস ফেলওভার স্বাস্থ্য পরীক্ষার উপর নির্ভর করে আপনার অ্যাপ্লিকেশনটির প্রতিটি প্রান্তটি উপরে বা নীচে রয়েছে কিনা তা নির্ধারণ করতে আপনার অ্যাপ্লিকেশনগুলিতে নিয়মিত ইন্টারনেট অনুরোধগুলি বিশ্বজুড়ে একাধিক অবস্থান থেকে শেষ করে requests
সেই কৌশলটি ELB (কেবলমাত্র একটি নোটের জন্য প্রয়োজনীয় নয়) আরও শক্তিশালী করে তোলে, আবার এটি আরআর + স্বাস্থ্য পরীক্ষার উপর ভিত্তি করে:
রুট 53 ডিএনএস ফেলওভার পর্দার পিছনে ইএলবির সাথে সংহত করে এই ব্যর্থতার সমস্ত পরিস্থিতিতে পরিচালনা করে। একবার সক্ষম হয়ে গেলে, রুট 53 স্বয়ংক্রিয়ভাবে পৃথক ELB নোডগুলির জন্য স্বাস্থ্য পরীক্ষাগুলি কনফিগার করে এবং পরিচালনা করে।
আসুন এখন দেখুন কীভাবে এটি দৃশ্যের পিছনে কাজ করে। স্পষ্ট প্রশ্নটি কীভাবে ডিএনএস ক্যাশে মোকাবেলা করবেন:
তবে, ডিএনএস ক্যাশে করা এখানে এখনও সমস্যা হতে পারে (আমাদের আগের পোস্টটি দেখুন যেখানে "দীর্ঘ লেজ" সমস্যাটি আচ্ছাদিত রয়েছে) যদি টিটিএল আপনার ক্লায়েন্ট এবং রুট 53 এর মধ্যে সমস্ত স্তর দ্বারা সম্মান না করা হয় তবে আপনি "ক্যাশে বুস্টিং" কৌশল প্রয়োগ করতে পারেন: একটি অনন্য ডোমেইনে একটি অনুরোধ প্রেরণ করুন
("http://<unique-id>.<your-domain>")
এবং একটি ওয়াইল্ডকার্ড রিসোর্স সংজ্ঞায়িত করুন
Record "*.<your-domain>" to match it.
অ্যালগোলিয়া "ক্লায়েন্ট পুনরায় চেষ্টা কৌশল" চালু করেছে যা আপনার ক্লায়েন্ট (আপনার ক্ষেত্রে জেএস) যদি এটি পরিচালনা করতে পারে তবে বেশ ভালভাবে কাজ করে:
আমরা আমাদের এপিআই ক্লায়েন্টগুলিতে একটি বেসিক পুনরায় চেষ্টা কৌশল প্রয়োগ করেছি। প্রতিটি এপিআই ক্লায়েন্ট তিনটি পৃথক মেশিন অ্যাক্সেস করতে সক্ষম হতে বিকাশিত হয়েছিল। তিনটি পৃথক ডিএনএস রেকর্ড প্রতিটি ব্যবহারকারীর প্রতিনিধিত্ব করে: USERIDID-1.algolia.io, USERID-2.algolia.io এবংUSERID-3.algolia.io। আমাদের প্রথম প্রয়োগটি ছিল এলোমেলোভাবে রেকর্ডগুলির মধ্যে একটি নির্বাচন করা এবং তারপরে ব্যর্থতার ক্ষেত্রে ভিন্ন একটিতে চেষ্টা করে ry