আমরা বর্তমানে আমাদের নতুন পণ্য / প্রকল্পে কাজ করছি, এটি একটি নির্দিষ্ট ক্লায়েন্ট / পরিষেবা উদ্যোগের দিকে পরিচালিত একটি ক্লায়েন্ট-সার্ভার অ্যাপ্লিকেশন। আমরা জাভা ফ্রন্ট-এন্ডের সাথে টিসিপির শীর্ষে একটি কাস্টম প্রোটোকল চালিয়ে একটি সার্ভার (সি ল্যাঙ্গুয়েজ এবং লিনাক্স কেবল) তৈরি করছি। আমরা কোডিংয়ের কাজে প্রায় 20% আছি এবং মাইক্রো বা মনোলিথিক কার্নেল আর্কিটেকচারের মধ্যে কোনওটি বেছে নিতে এমন পরিস্থিতির মুখোমুখি হয়েছি।
আমি সচেতন যে মাইক্রো বনাম মনোলিথিক সাধারণত কার্নেল আর্কিটেকচারের সাথে সম্পর্কিত, তবে আমরা বিশেষত সার্ভারগুলির বিষয়ে কথা বলছি।
কেন একটি কাস্টম সার্ভার এবং বিদ্যমান কিছু নেই?
- আমাদের ইউআই প্রয়োজনীয়তাগুলি তাৎপর্যপূর্ণ এবং অত্যন্ত গতিশীল, সুতরাং ওয়েব / ওয়েব-ব্রাউজার ভিত্তিক সমাধানগুলি যথাযথ ছিল না।
- ক্লায়েন্টের শেষে স্ট্যাটিস্টিকাল প্রসেসিংটি তাৎপর্যপূর্ণ এবং তাই, আবার, ব্রাউজারগুলি খুব একটা সহায়ক ছিল না। (অবশ্যই, আমরা সার্ভারের শেষে প্রক্রিয়াজাতকরণ করতে পারি এবং প্রক্রিয়াকৃত ডেটা ক্লায়েন্টের কাছে দিতে পারি তবে এটি সার্ভারে প্রচুর বোঝা এবং ক্লায়েন্টের সংস্থানগুলির অপচয়কে বোঝায়)।
- তদুপরি, একটি একক ইভেন্ট পরিচালনা করতে কমপক্ষে তিনটি প্রযুক্তি (জেএস / এইচটিএমএল / সিএসএস) দিয়ে মরুভূমির ঝড়ের মধ্যে ঘর ঝরানোর মতো পুরো অভিজ্ঞতা তৈরি করে - আপনি এটিকে এন-বার সাফ করে ফেলেন, ধূলিকণ 1 + বার জমে ulates
মাইক্রো এবং মনোলিথিক সার্ভার সম্পর্কে কি? এসব তুমি কি বলছো?
নিম্নলিখিত (অনুমান) ক্লায়েন্ট অনুরোধ বিবেচনা করুন:
request-id: 123
request-service: HistoricDataSets
request-message: Fetch all records upto the year 2010
এই জাতীয় অনুরোধটি গ্রহণ করার পরে, একটি সার্ভার সাধারণত করে (আমরা সরলতার জন্য থ্রেড এবং কাঁটাচামড়ার মতো সম্মতিযুক্ত কৌশলগুলি উপেক্ষা করছি):
- অনুরোধের স্ট্রিং পার্স করুন
- ক্রিয়াটি চিহ্নিত করুন (
HistoricDataSets LIMIT Year (2010)
আমাদের ক্ষেত্রে আনুন ) - অবিরাম স্তরের সাথে ইন্টারঅ্যাক্ট করুন (ওরাকল, আমাদের উদাহরণে বলতে দিন) এবং ডেটা আনতে।
প্রোটোকল অনুসারে ডেটা ফর্ম্যাট করুন। উদা:
প্রতিক্রিয়া-আইডি: 123
সাফল্য: সত্য
প্রতিক্রিয়া-পাঠ্য: ডাটাসেটসক্লায়েন্টকে এভাবে ফর্ম্যাট করা ডেটা দিয়ে সাড়া দিন।
এটিই আমরা মনোলিথিক সার্ভারকে কল করছি (একরকম কর্নেলের অনুরূপ যেখানে সমস্ত ওএস কাজ কর্নেলের জায়গায় করা হয়)।
রসিদে, আবার এই অনুরোধটি আবার বিবেচনা করুন (আমরা সরলতার জন্য আবার আইপিসি হিসাবে কেবল ভাগ করা মেমরি ধরে নিয়েছি):
Parser
প্রক্রিয়াটির জন্য অনুরোধটি ভাগ করা মেমরির মধ্যে রাখেParser
স্ট্রিং parses, টাস্ক চিহ্নিত করে এবং নির্দেশExecutioner
কর্ম চালানো প্রক্রিয়া।Executioner
তারপর তথ্য পাসেরFomatter
প্রক্রিয়া যার, একটি প্রোটোকল স্ট্রিং ডেটা ফর্ম্যাটিং পর সার্ভারে আয়।- সার্ভার এটি ক্লায়েন্টের কাছে প্রেরণ করে (প্রতিক্রিয়া)।
অবশ্যই, পরিবর্তে Parser
, Executioner
এবং Formatter
এটি একক তবে পৃথক প্রক্রিয়া হতে পারে। এটি আমরা মাইক্রো সার্ভারকে কল করছি (একটি মাইক্রো কার্নেলের মতো যা সবেমাত্র ন্যূনতম প্রয়োজনীয় যা প্রয়োজন)। সার্ভার কার্যকরভাবে কেবল শুনছে এবং প্রতিক্রিয়া করছে যখন সমস্ত পদক্ষেপগুলি বিভিন্ন প্রক্রিয়া (এস) দ্বারা যত্ন নেওয়া হয়।
কোনটি বেছে নেবে? আমরা বিভ্রান্ত! যদিও একচেটিয়া সার্ভারগুলি চেষ্টা করা হয় এবং পরীক্ষা করা হয় (সর্বাধিক এইচটিটিপি-ওয়েব সার্ভার?) এবং প্রোগ্রাম করা সহজ এবং একযোগে বেশ ভাল পরিচালনা করতে পারে। মাইক্রো সার্ভারগুলি, প্রথম দিকের, দ্রুত এবং এক কাজ করার জন্য একটি প্রোগ্রামের UNIX নীতির সাথে সঙ্গতিপূর্ণ বলে মনে হয় তবে এগুলি বিকাশ করা জটিল e একচেটিয়া মনে রাখা
প্রশ্ন (গুলি)
- প্রতিটি পদ্ধতির উপকারিতা এবং কনস (সম্ভবত হতে পারে) কী কী?
- কখন ব্যবহার করবেন? (এটি একটি সাধারণ প্রশ্ন হিসাবে ব্যাখ্যাও করা যেতে পারে: আইপিসি কখন ব্যবহার করতে হবে?)
- মাইক্রো কার্নেলটি বেছে নেওয়া হয়, তবে কোন ফাংশনগুলি কোর-সার্ভারের অংশ হতে হবে এবং কী নয়?
অনুরূপ / সম্পর্কিত প্রশ্ন
- বিপুল একতরফা প্রয়োগের বিপদ
- বাহ্যিক বনাম এম্বেড ব্রাউজার (স্পর্শকাতর)
- মনোলিথিক অ্যাপ্লিকেশনটিকে মাল্টিথ্রেডেড (ট্যানজেনটিয়াল) এ রূপান্তর করার পরামর্শ
কিছু তথ্য যা সহায়ক হতে পারে:
- আমাদের সম্ভাব্য গ্রাহকদের দুটি বিভাগে বিভক্ত করা যেতে পারে:
- বড়: প্রতি মিনিটে প্রায় 1,700 - 2,000 অনুরোধ
- ছোট: প্রতি মিনিটে প্রায় 650 - 700 টি অনুরোধ
- অনুরোধ চক্র প্রতি ডেটা ভলিউম (অনুরোধ এবং পরবর্তী প্রতিক্রিয়া) সাধারণত mean 1.20 মেগাবাইট এবং 250-200 এমবি প্রায় খারাপ ক্ষেত্রে সাধারণত বিতরণ বলে ধরে নেওয়া যেতে পারে।
- পণ্যের ধারণাটি তুলনামূলকভাবে নতুন তবে মূল ক্রিয়াকলাপগুলিকে প্রভাবিত করার সক্ষমতা রয়েছে, তাই আমরা আশা করি গ্রাহক বাজেটগুলি কেবলমাত্র একটি নির্দিষ্ট ব্যবধান (9-12 মাস) পোস্ট স্থাপনার পরে নমনীয় হবে, এটি ক্লায়েন্টকে ইচ্ছুক হবে এমন হার্ডওয়ারের পরিমাণকে সীমাবদ্ধ করে দেয় প্রতিশ্রুতিবদ্ধ ছোটগুলি।
- প্রতিটি গ্রাহকের নিজস্ব ক্লায়েন্ট-সার্ভার স্ট্যাক থাকবে। সার্ভারটি গ্রাহকের দলের দ্বারা পরিচালিত গ্রাহকের হার্ডওয়ারে চলবে, যখন ক্লায়েন্টগুলি কার্যকরী কর্মীদের মেশিনে মোতায়েন করা হবে
- ক্লায়েন্ট এবং সার্ভার অ্যাপ্লিকেশন উভয়ের জন্য দূরবর্তী আপডেটগুলি আবশ্যক
PUSH
সার্ভারের দ্বারা রিয়েল টাইম পরিষেবাদিগুলি পণ্যগুলি ক্লিক করলে 'অত্যন্ত' পছন্দসই হতে পারে!