সিলভার বুলেট নেই
অনুশীলনে এটি নির্ভর করে ...
tl; dr - সহজ সমাধান, nginx ব্যবহার করুন ...
ব্লকিং:
উদাহরণস্বরূপ, অ্যাপাচি ডিফল্টরূপে একটি ব্লকিং স্কিম ব্যবহার করে যেখানে প্রতিটি সংযোগের জন্য প্রক্রিয়াটি গঠন করা হয়। তার মানে প্রতিটি সংযোগের নিজস্ব মেমরির স্থান প্রয়োজন এবং সংযোগের সংখ্যা বাড়ার সাথে সাথে প্রসঙ্গ-স্যুইচিং ওভারহেডের নিখুঁত পরিমাণ আরও বৃদ্ধি পায়। তবে সুবিধাটি হ'ল একবার সংযোগ বন্ধ হয়ে গেলে প্রসঙ্গটি নিষ্পত্তি করা যায় এবং যে কোনও / সমস্ত স্মৃতি সহজেই পুনরুদ্ধার করা যায়।
একটি বহু-থ্রেড পদ্ধতির অনুরূপ হতে পারে যে প্রসঙ্গের স্যুইচিংয়ের ওভারহেড সংযোগের সংখ্যার সাথে বৃদ্ধি পায় তবে ভাগ করা প্রসঙ্গে আরও মেমরি দক্ষ হতে পারে। এই জাতীয় পদ্ধতির সাথে সমস্যাটি এমনভাবে ভাগ করে নেওয়া মেমরির পক্ষে নিরাপদ যেভাবে পরিচালনা করা কঠিন। মেমোরি সিঙ্ক্রোনাইজেশন সমস্যাগুলি কাটিয়ে ওঠার পদ্ধতির প্রায়শই তাদের নিজস্ব ওভারহেড অন্তর্ভুক্ত থাকে, উদাহরণস্বরূপ লক করা সিপিইউ-নিবিড় লোডগুলিতে মূল থ্রেডকে হিমায়িত করতে পারে এবং অপরিবর্তনীয় প্রকারের সাহায্যে ডেটা অনুলিপি করে অনুলিপি করা যায়।
আফাইক, একটি ব্লক করা এইচটিটিপি সার্ভারে মাল্টি-প্রসেস পদ্ধতির ব্যবহারকে সাধারণত পছন্দ করা হয় কারণ এটি নিরাপদ / নিরাপদভাবে মেমরি পরিচালনা / পুনরুদ্ধারের মেমরির পক্ষে সহজ that's মেমরি পুনরুদ্ধার করা কোনও প্রক্রিয়া বন্ধ করার মতো সহজ ময়লা আবর্জনা সংগ্রহ একটি অ-ইস্যুতে পরিণত হয়। দীর্ঘ-চলমান প্রক্রিয়াগুলির (যেমন একটি ডেমন) জন্য বৈশিষ্ট্যটি বিশেষভাবে গুরুত্বপূর্ণ।
কনটেক্সট-স্যুইচিং ওভারহেড অল্প সংখ্যক শ্রমিকের কাছে তুচ্ছ মনে হলেও, সমস্যাগুলি আরও বেশি প্রাসঙ্গিক হয়ে ওঠে কারণ কয়েক হাজার থেকে হাজার হাজার সমকালীন সংযোগের লোড স্কেল হয়। সর্বোপরি, প্রসঙ্গটি ও (এন) কে উপস্থিত কর্মীদের সংখ্যায় স্কেল করে তবে বাস্তবে এটি সম্ভবত সবচেয়ে খারাপ।
যেখানে সার্ভারগুলি যা ব্লকিং ব্যবহার করে এটি ভারী ভারী লোডগুলির জন্য আদর্শ পছন্দ নাও হতে পারে, তারা সিপিইউ-নিবিড় কাজের জন্য আদর্শ এবং বার্তা প্রেরণ একটি মিনিমামে রাখা হয়।
অ-অবরোধ:
নন-ব্লকিং নোড.জেএস বা এনজিনেক্সের মতো কিছু হবে। এগুলি আইও-নিবিড় লোডের অধীনে নোডের জন্য সংযোগের অনেক বড় সংখ্যায় স্কেলিংয়ের জন্য বিশেষত পরিচিত। মূলত, লোকেরা একবার থ্রেড / প্রক্রিয়া-ভিত্তিক সার্ভারগুলি কীভাবে পরিচালনা করতে পারে তার উপরের সীমাটিতে আঘাত করে তারা বিকল্প বিকল্পগুলি অন্বেষণ করতে শুরু করে। এটি অন্যথায় C10K সমস্যা হিসাবে পরিচিত (যেমন 10,000 সমবর্তী সংযোগগুলি হ্যান্ডেল করার ক্ষমতা)।
নন-ব্লকিং অ্যাসিঙ্ক সার্ভারগুলি সাধারণত মাল্টি-থ্রেডড-লকিং পদ্ধতির সাথে অনেকগুলি বৈশিষ্ট্য ভাগ করে দেয় যাতে আপনাকে সিপিইউ-নিবিড় লোডগুলি এড়াতে সতর্কতা অবলম্বন করতে হবে কারণ আপনি মূল থ্রেডটি ওভারলোড করতে চান না। সুবিধাটি হ'ল কনটেক্সট স্যুইচিংয়ের ফলে ব্যয় করা ওভারহেড মূলত মুছে ফেলা হয় এবং কেবলমাত্র একটি প্রসঙ্গ বার্তা প্রেরণ করা একটি অ-ইস্যুতে পরিণত হয়।
যদিও এটি অনেকগুলি নেটওয়ার্কিং প্রোটোকলের জন্য কাজ না করে, এইচটিটিপিএস স্টেটলেস প্রকৃতি বিশেষত অবরুদ্ধকরণ-আর্কিটেকচারের জন্য ভাল কাজ করে। বিপরীত প্রক্সি এবং একাধিক নন-ব্লকিং এইচটিটিপি সার্ভারের সংমিশ্রণটি ব্যবহার করে ভারী বোঝা ভোগ করছে এমন নোডগুলির চারপাশে সনাক্তকরণ এবং রুট করা সম্ভব।
এমনকি এমন একটি সার্ভারেও যেখানে কেবল একটি নোড রয়েছে, সেটআপটির মাধ্যমে প্রসেসরের মূল্যে একটি সার্ভার অন্তর্ভুক্ত করা সর্বাধিক করা সম্ভব very
উভয়:
'আদর্শ' ব্যবহারের ক্ষেত্রে উভয়ের সংমিশ্রণ হবে। শীর্ষে রাউটিং অনুরোধগুলির জন্য উত্সর্গীকৃত সম্মুখের একটি বিপরীত প্রক্সি, তারপরে ব্লকিং এবং নন-ব্লকিং সার্ভারগুলির মিশ্রণ। স্থির সামগ্রী, ক্যাশে সামগ্রী, এইচটিএমএল সামগ্রী সরবরাহ করার মতো আইও কাজের জন্য অবরুদ্ধকরণ। সিপিইউ-ভারী কাজের জন্য ব্লক করা যেমন এনকোডিং চিত্র / ভিডিও, স্ট্রিমিং সামগ্রী, নম্বর ক্রাঞ্চিং, ডাটাবেস রাইটিং ইত্যাদি etc.
আপনার ক্ষেত্রে:
যদি আপনি কেবল শিরোনাম পরীক্ষা করে থাকেন তবে অনুরোধগুলি বাস্তবে প্রসেস না করে থাকেন তবে আপনি যা মূলত বর্ণনা করছেন তা একটি বিপরীত প্রক্সি। এই ক্ষেত্রে আমি অবশ্যই একটি অ্যাসিঙ্ক পদ্ধতির সাথে যেতে চাই।
আমি অন্তর্নির্মিত বিপরীত প্রক্সি nginx জন্য ডকুমেন্টেশন চেক আউট পরামর্শ দিতে চাই ।
একপাশে:
আপনার প্রদত্ত লিঙ্কটি থেকে আমি লেখার বিষয়টি পড়েছি এবং এটি বোঝা যায় যে অ্যাসিঙ্ক তাদের নির্দিষ্ট প্রয়োগের জন্য একটি দুর্বল পছন্দ ছিল। একটি বিবৃতিতে ইস্যুটি সংক্ষিপ্ত করা যেতে পারে।
পাওয়া গেছে যে ক্লায়েন্টদের মধ্যে স্যুইচ করার সময়, মান / রাষ্ট্র সংরক্ষণ এবং পুনরুদ্ধারের কোডটি কঠিন ছিল
তারা একটি রাষ্ট্রীয় পূর্ণ প্ল্যাটফর্ম তৈরি করছিল। এই জাতীয় ক্ষেত্রে, একটি অ্যাসিঙ্ক পদ্ধতির অর্থ হ'ল প্রতিবার প্রসঙ্গটি পরিবর্তন করা (যেমন কোনও ইভেন্টে আগুন লাগার সময়) আপনাকে নিয়মিতভাবে রাষ্ট্রকে / সংরক্ষণ করতে হবে d তদ্ব্যতীত, এসএমটিপি সাইডে তারা প্রচুর সিপিইউ-নিবিড় কাজ করছে।
দেখে মনে হচ্ছে যে তারা অ্যাসিঙ্ক সম্পর্কে খুব খারাপ ধারণা করেছিল এবং ফলস্বরূপ, অনেক খারাপ অনুমান করেছিল।