যে কোনও আধুনিক একক সার্ভার একবারে কয়েক হাজার ক্লায়েন্টকে সার্ভার করতে সক্ষম । এর এইচটিটিপি সার্ভার সফটওয়্যারটি হ'ল ইভেন্ট-চালিত (আইওসিপি) ওরিয়েন্টেড (আমরা আর পুরানো অ্যাপাচিতে একটি সংযোগ = একটি থ্রেড / প্রক্রিয়া সমীকরণ নেই)। এমনকি উইন্ডোজে নির্মিত HTTP সার্ভারটি (http.sys) আইওসিপি ওরিয়েন্টেড এবং খুব দক্ষ (কার্নেল মোডে চলমান)। এই দৃষ্টিকোণ থেকে, ওয়েবসকেট এবং নিয়মিত এইচটিটিপি সংযোগের মধ্যে স্কেলিংয়ে খুব বেশি পার্থক্য হবে না। একটি টিসিপি / আইপি সংযোগ একটি সামান্য রিসোর্স (একটি থ্রেডের তুলনায় অনেক কম) ব্যবহার করে এবং আধুনিক ওএস প্রচুর সাম্প্রতিক সংযোগগুলি পরিচালনা করার জন্য অনুকূলিত হয়: ওয়েবসকেট এবং এইচটিটিপি এই টিসিপি / আইপি স্পেসিফিকেশন থেকে উত্তরাধিকার সূত্রে কেবল ওএসআই 7 অ্যাপ্লিকেশন স্তর প্রোটোকল are
তবে, পরীক্ষা থেকে, আমি ওয়েবসকেটগুলির সাথে দুটি প্রধান সমস্যা দেখেছি:
- তারা সিডিএন সমর্থন করে না;
- তাদের সম্ভাব্য সুরক্ষা সমস্যা রয়েছে।
সুতরাং আমি কোনও প্রকল্পের জন্য নিম্নলিখিতগুলি সুপারিশ করব:
- কেবলমাত্র ক্লায়েন্টের বিজ্ঞপ্তিগুলির জন্য ওয়েবসকেটগুলি ব্যবহার করুন (দীর্ঘ ভোটদানের ফ্যালব্যাক প্রক্রিয়া সহ - প্রায় প্রচুর গ্রন্থাগার রয়েছে);
- ক্যাশে জন্য সিডিএন বা প্রক্সি ব্যবহার করে অন্যান্য সমস্ত ডেটার জন্য RESTful / JSON ব্যবহার করুন।
অনুশীলনে, সম্পূর্ণ ওয়েবসকেট অ্যাপ্লিকেশনগুলি ভাল স্কেল করে না। সেগুলির জন্য যা ডিজাইন করা হয়েছিল কেবল তার জন্য কেবল ওয়েবসকেটগুলি ব্যবহার করুন: সার্ভার থেকে ক্লায়েন্টের জন্য বিজ্ঞপ্তিগুলি ধাক্কা।
ওয়েবসকেট ব্যবহারের সম্ভাব্য সমস্যা সম্পর্কে:
1. একটি সিডিএন ব্যবহার বিবেচনা করুন
আজ (প্রায় ৪ বছর পরে), ওয়েব স্কেলিংটি কেবল স্থিতিশীল সামগ্রী (এইচটিএমএল, সিএসএস, জেএস) নয়, আপনার (জেএসওএন) অ্যাপ্লিকেশন ডেটার জন্য কনটেন্ট ডেলিভারি নেটওয়ার্ক (সিডিএন) এর সম্মুখভাগটি ব্যবহারের সাথে জড়িত ।
অবশ্যই, আপনি আপনার সমস্ত ডেটা আপনার সিডিএন ক্যাশে রাখবেন না, তবে অনুশীলনে, প্রচুর প্রচলিত সামগ্রী প্রায়শই পরিবর্তন হয় না। আমার সন্দেহ হয় যে আপনার রিস্ট্রেড রিসোর্সগুলির 80% ক্যাশে হতে পারে ... এমনকি এক মিনিট (বা 30 সেকেন্ড) সিডিএন মেয়াদোত্তীর্ণ সময়সীমা আপনার কেন্দ্রীয় সার্ভারকে নতুন লাইভ দিতে এবং অ্যাপ্লিকেশন প্রতিক্রিয়াটি অনেক বাড়িয়ে দিতে পারে, যেহেতু সিডিএন পারে ভৌগলিকভাবে সুর করা ...
আমার জানা মতে, সিডিএন-তে এখনও কোনও ওয়েবসকেট সমর্থন নেই, এবং আমার সন্দেহ হয় যে এটি কখনও না। ওয়েবসকেটগুলি স্টেটফুল, যেখানে এইচটিটিপি রাষ্ট্রবিহীন, তাই সহজেই ক্যাশে হয়। প্রকৃতপক্ষে, ওয়েবসকেটগুলিকে সিডিএন-বান্ধব করে তুলতে আপনাকে একটি স্টেটলেস রেস্টলফুল অ্যাপ্রোচ পরিবর্তন করতে হবে ... যা আর ওয়েবসকেট হবে না।
2. সুরক্ষা সমস্যা
ওয়েবসকেটে সম্ভাব্য সুরক্ষার সমস্যা রয়েছে, বিশেষত ডস আক্রমণগুলি। নতুন সুরক্ষা দুর্বলতার বিষয়ে চিত্রের জন্য, স্লাইডগুলির এই সেট এবং এই ওয়েবকিট টিকিটটি দেখুন ।
ওয়েবসকেটগুলি ওএসআই application অ্যাপ্লিকেশন স্তর স্তরের প্যাকেট পরিদর্শন করার কোনও সম্ভাবনা এড়িয়ে চলে, যে কোনও ব্যবসায়ের সুরক্ষায় আজকাল এটি বেশ মানক হয়ে আসে। প্রকৃতপক্ষে, ওয়েবসকেটগুলি সংক্রমণকে অচল করে দেয়, তাই সুরক্ষা ফাঁসের একটি বড় লঙ্ঘন হতে পারে।