উত্তর:
আমি ধীর ক্লায়েন্টের আচরণ এবং আপনার কনফিগারেশনটি কীভাবে এটি পরিচালনা করে সেদিকে মনোনিবেশ করতে চলেছি, তবে এটিই কেবল লাভ benefit ধীর ক্লায়েন্টদের যে একই পদ্ধতি উপকার করে সেই একই পদ্ধতিতে দ্রুত ক্লায়েন্টদের জন্যও এসএসএল হ্যান্ডলিং, ট্রাফিকের বাড়া নিয়ে কাজ করা এবং ইন্টারনেটে এইচটিটিপি সরবরাহের অন্যান্য দিক রয়েছে।
গ্যানিকর্ন হ'ল প্রি-ফোর্কিং সফটওয়্যার। অ্যাপ্লিকেশন সার্ভারের লোড ব্যালান্সার বা পরিষেবাদির মধ্যে যোগাযোগের মতো স্বল্প প্রচ্ছন্নতার জন্য, প্রি-ফর্ক সিস্টেমগুলি খুব সফল হতে পারে। অনুরোধটি পরিচালনা করার জন্য কোনও প্রক্রিয়া কাটাতে কোনও খরচ নেই এবং একটি একক প্রক্রিয়া কোনও একক অনুরোধ পরিচালনার জন্য উত্সর্গ করা যেতে পারে; এই জিনিসগুলির নির্মূলকরণ সামগ্রিক দ্রুত, আরও কার্যকর সিস্টেমের দিকে পরিচালিত করতে পারে যতক্ষণ না এক সাথে সংযোগের সংখ্যাগুলি পরিচালনা করার জন্য উপলব্ধ প্রক্রিয়াগুলির সংখ্যা ছাড়িয়ে যায়।
আপনার পরিস্থিতিতে, আপনি ইন্টারনেটে উচ্চ বিলম্বিত ক্লায়েন্টদের সাথে কাজ করছেন। এই ধীর ক্লায়েন্টগুলি সেই একই প্রক্রিয়াগুলি বেঁধে রাখতে পারে। যখন কিউপিএস বিষয়টি বিবেচনা করে, অ্যাপ্লিকেশন কোডটি যত তাড়াতাড়ি সম্ভব অনুরোধটি গ্রহণ, পরিচালনা ও সমাধান করা দরকার যাতে এটি অন্য একটি অনুরোধে যেতে পারে। ধীর ক্লায়েন্টরা যখন আপনার সিস্টেমের সাথে সরাসরি যোগাযোগ করে, তারা সেই প্রক্রিয়াটি বেঁধে দেয় এবং এটিকে ধীর করে দেয়। অনুরোধটি যত তাড়াতাড়ি সম্ভব পরিচালনা করা এবং নিষ্পত্তি করার পরিবর্তে সেই প্রক্রিয়াটি এখন ধীর ক্লায়েন্টের জন্যও অপেক্ষা করতে হবে। কার্যকর কিউপিএস নীচে যায়।
খুব কম সিপিইউ এবং মেমরির ব্যয়ের সাথে প্রচুর সংখ্যক সংযোগ পরিচালনা করা হ'ল এনগিনেক্সের মতো অ্যাসিনক্রোনাস সার্ভারগুলি ভাল। ধীর ক্লায়েন্টদের দ্বারা তারা একই নেতিবাচক পদ্ধতিতে প্রভাবিত হয় না কারণ তারা একসাথে বিপুল সংখ্যক ক্লায়েন্টকে পরিচালনা করতে পারদর্শী। এনগিনেক্সের ক্ষেত্রে, আধুনিক হার্ডওয়্যারটিতে চলমান এটি একবারে কয়েক হাজার সংযোগ পরিচালনা করতে পারে।
প্রি-ফরাকিং সার্ভারের সামনে এনগিনেক্স একটি দুর্দান্ত সংমিশ্রণ। এনগিনেক্স ক্লায়েন্টদের সাথে যোগাযোগ পরিচালনা করে এবং ধীর ক্লায়েন্টদের পরিচালনা করার জন্য কোনও শাস্তির মুখোমুখি হয় না। এটি ব্যাকএন্ডে অনুরোধগুলি তত দ্রুত পাঠায় যত দ্রুত ব্যাকএন্ড সেই অনুরোধগুলি পরিচালনা করতে পারে, ব্যাকএন্ডটিকে যথাসম্ভব সার্ভার রিসোর্সগুলির সাথে দক্ষ হতে সক্ষম করে। ব্যাকএন্ড এটি গণনা করার সাথে সাথে ফলাফলটি ফেরত দেয় এবং এনগিনেক্স বাফার করে যে এটি তাদের নিজস্ব গতিতে ক্লায়েন্টদের ধীরে ধীরে খাওয়ানোর জন্য প্রতিক্রিয়া জানায়। এদিকে, ধীর ক্লায়েন্টটি এখনও ফলাফলটি পাচ্ছে বলে ব্যাকএন্ড অন্য অনুরোধটি সামলানোর দিকে এগিয়ে যেতে পারে।
@ ব্লুবেন ঠিক আছে। বিপরীত প্রক্সি ব্যবহার না করা হলে কী ঘটতে পারে তার একটি সুনির্দিষ্ট এবং সাধারণ উদাহরণ হ'ল ব্যাকএন্ড ডাটাবেস যেখানে কোনও প্রক্সি নেই এবং সেখানে ট্রাফিকের স্পাইক রয়েছে সেখানে ডাটাবেস সংযোগ পরিচালনা করতে পারে। এটি ব্লুবেন বর্ণিত হিসাবে সংযোগগুলি ছেড়ে দিতে ধীর হয়ে যাওয়ার কারণে।
ডেটাবেস হ্যান্ডলগুলি চালু হয়ে যাওয়ার প্রথম প্রবৃত্তিটি হতে পারে আরও ডাটাবেস সংযোগগুলি সমর্থন করা। তবে অ্যাপটির সামনে একটি বিপরীত প্রক্সি যুক্ত করে আপনি উচ্চ লোডের জন্য প্রয়োজনীয় ডেটাবেস সংযোগের সংখ্যা উভয়ই উল্লেখযোগ্যভাবে স্থির করতে এবং স্থিতিশীল করতে পারেন - ট্রাফিকের স্পাইক থাকাকালীন ডাটাবেস সংযোগ স্তরটি প্রায় ততটা স্পাইক করবে না।
আপনার অ্যাপ্লিকেশন সার্ভারকে অ্যাপ্লিকেশন সার্ভার হিসাবে ফোকাস করতে দেয়, স্ট্যাটিক সামগ্রী, ক্যাশে এবং বিভিন্ন অন্যান্য এইচটিটিপি কার্য সরবরাহ করার ক্ষেত্রেও এনগিনেক্স দুর্দান্ত।