ঠিক আছে, এই কিছুক্ষণ আগে জিজ্ঞাসা করা হয়েছিল, এবং আমি পার্টিতে দেরি করেছি। তবুও এখানে কিছু যুক্ত করার দরকার আছে।
জ্যাকি, আপনি অনেকটা পেরেক দিয়ে গেছেন। আপনার উদাহরণটি দেখায় যে কীভাবে বেশিরভাগ ছোট এবং মাঝারি আকারের ইনস্টলেশনগুলিতে লোড ব্যালেন্সিং পরিচালনা করা হয়।
আপনার উইলির তারেরউ লোড ব্যালেন্সিং প্রবর্তনটি পড়া উচিত যা নেকেডিবিলের সাথে যুক্ত ছিল। এটি এখনও বৈধ, এবং এটি একটি ভাল ভূমিকা।
এগুলি কীভাবে আপনার প্রয়োজনের সাথে খাপ খায় তা বিবেচনা করা উচিত:
- টিসিপি / আইপি স্তর লোড ব্যালান্সার (লিনাক্স ভার্চুয়াল সার্ভার এবং অন্যান্য)। ওভারহেড প্রতি সংক্ষিপ্ততম, সর্বোচ্চ গতি, HTTP "দেখতে" পারে না।
- এইচটিটিপি স্তরের লোড ব্যালান্সার (HAProxy, nginx, অ্যাপাচি ২.২, পাউন্ড, মাইক্রোসফ্ট এআরআর এবং আরও অনেক কিছু)। উচ্চতর ওভারহেড, HTTP দেখতে পারে, HTTP gzip করতে পারে, SSL করতে পারে, স্টিকি স্টেশনের লোড ব্যালেন্সিং করতে পারে।
- এইচটিটিপি বিপরীত প্রক্সি (অ্যাপাচি ট্র্যাফিক সার্ভার, বার্নিশ, স্কুইড)। ক্যাশে-সক্ষম অবজেক্টস (কিছু ওয়েবপেজ, সিএসএস, জেএস, ইমেজ) র্যামে সঞ্চয় করতে পারে এবং ব্যাকএন্ড ওয়েবসারভারকে জড়িত না করে পরবর্তী ক্লায়েন্টগুলিতে ফরোয়ার্ড করতে পারে। L7 HTTP লোড ব্যালান্সাররা প্রায়শই একই কাজ করতে পারে।
দ্বিতীয় ব্যালেন্সার আছে কারণ আমি নিশ্চিত যে এক পর্যায়ে ব্যালান্সারেরও খুব সাহায্যের প্রয়োজন হবে।
ঠিক আছে। তবে লোড ব্যালেন্সিং সহজ, এবং প্রায়শই একক লোড ব্যালেন্সার দ্রুত যেতে পারে । আমি এই নিবন্ধটির সাথে লিঙ্ক করছি, যা ওয়েবে একটি স্নায়ুতে আঘাত পেয়েছিল, কোনও একক আধুনিক সার্ভারের পারফরম্যান্স বলপার্ক কী পারফরম্যান্স সরবরাহ করতে পারে তার উদাহরণ হিসাবে । আপনার প্রয়োজন হওয়ার আগে একাধিক এলবি ব্যবহার করবেন না। যখন আপনার একটি সাধারণ পদ্ধতির দরকার হয় তখন একেবারে সামনের আইপি স্তরের লোড ব্যালান্সারগুলি (বা ডিএনএস রাউন্ড রবিন), এইচটিটিপি স্তরের লোড ব্যালান্সারগুলিতে গিয়ে প্রক্সি এবং ওয়েব অ্যাপ সার্ভারগুলিতে যান।
"ভারসাম্যকারী / গুলি" কী হওয়া উচিত এবং সেগুলি কীভাবে সেটআপ করবেন তার সেরা অনুশীলনগুলিতে সহায়তা করুন।
সমস্যার জায়গাটি হ'ল সেশন স্টেট পরিচালনা এবং কিছুটা ব্যর্থতার রাষ্ট্র আচরণ। লোড ব্যালান্সারগুলি সেট আপ করা তুলনামূলকভাবে সোজা।
যদি আপনি কেবল 2-4 ব্যাকএন্ড ওয়েবআপ সার্ভার ব্যবহার করেন তবে মূল আইপি ঠিকানার ভিত্তিতে স্ট্যাটিক হ্যাশিং व्यवहार्य হতে পারে। এটি ওয়েবঅ্যাপ সার্ভারগুলির মধ্যে ভাগ করে নেওয়া সেশন স্টেটের প্রয়োজনীয়তা এড়ায়। প্রতিটি ওয়েবঅ্যাপ নোড সামগ্রিক ট্র্যাফিকের 1 / এন দেখে এবং গ্রাহক-টু-সার্ভার ম্যাপিং স্বাভাবিক ক্রিয়াকলাপে স্থির থাকে। যদিও এটি বৃহত্তর ইনস্টলেশন জন্য ভাল ফিট না।
দুই সেরা ভারসাম্য বজায় রাখার আলগোরিদিম, ইন্দ্রিয় তারা উচ্চ লোড এবং এমনকি লোড বন্টন অধীনে ক্ষতিকর আচরণ আছে, এর মধ্যে রাউন্ড রবিন ও সত্য র্যান্ডম ভারসাম্য আছে। এই উভয়েরই প্রয়োজন যে আপনার ওয়েব অ্যাপ্লিকেশনটির ওয়েবঅ্যাপ নোডগুলিতে বৈশ্বিক সেশন স্টেট রয়েছে। এটি কীভাবে করা হয় তা নির্ভর করে ওয়েব অ্যাপ টেক স্ট্যাকের উপর; তবে সাধারণত এটির জন্য স্ট্যান্ডার্ড সমাধান উপলব্ধ।
স্ট্যাটিক হ্যাশিং বা ভাগ করা সেশন স্টেট না উভয়ই আপনার পক্ষে উপযুক্ত যদি না হয়, তবে পছন্দটি সাধারণত ' স্টিকি সেশন ' লোড ব্যালেন্সিং এবং প্রতি সার্ভার সেশন স্থিতি। বেশিরভাগ ক্ষেত্রে এটি সূক্ষ্মভাবে কাজ করে, এবং এটি একটি সম্পূর্ণ ব্যবহারযোগ্য পছন্দ।
ভারসাম্যকারীরা দেখতে পাবে যে প্রতিটি অ্যাপাচে উদাহরণে কতগুলি সংযোগ রয়েছে (অভ্যন্তরীণ আইপি বা চিরন্তন আইপিগুলির কোনও কনফিগার তালিকার মাধ্যমে) এবং সংযোগগুলি সমানভাবে বিতরণ করে
হ্যাঁ, কিছু সাইট এটি ব্যবহার করে। বিদ্যমান বিভিন্ন লোড ব্যালেন্সিং অ্যালগরিদমের জন্য অনেকগুলি নাম রয়েছে। যদি আপনি রাউন্ড রবিন বা এলোমেলো (বা ভারী রাউন্ড রবিন, ভারী র্যান্ডম) বেছে নিতে পারেন তবে উপরে বর্ণিত কারণে আমি আপনাকে এটি করার পরামর্শ দিচ্ছি।
শেষ কথা: ভুলে যাবেন না যে অনেক বিক্রেতারা (এফ 5, সিসকো এবং আরও যুক্তিসঙ্গত দামগুলিতে হাই-এন্ড, এফএক্স কোয়েট পয়েন্ট এবং কেম্প টেকনোলজিসে অন্যান্য) পরিপক্ক লোড ব্যালেন্সিং অ্যাপ্লিকেশন সরবরাহ করে ।