মাইক্রো বনাম মনোলিথিক সার্ভার আর্কিটেকচার


11

আমরা বর্তমানে আমাদের নতুন পণ্য / প্রকল্পে কাজ করছি, এটি একটি নির্দিষ্ট ক্লায়েন্ট / পরিষেবা উদ্যোগের দিকে পরিচালিত একটি ক্লায়েন্ট-সার্ভার অ্যাপ্লিকেশন। আমরা জাভা ফ্রন্ট-এন্ডের সাথে টিসিপির শীর্ষে একটি কাস্টম প্রোটোকল চালিয়ে একটি সার্ভার (সি ল্যাঙ্গুয়েজ এবং লিনাক্স কেবল) তৈরি করছি। আমরা কোডিংয়ের কাজে প্রায় 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সার্ভারের দ্বারা রিয়েল টাইম পরিষেবাদিগুলি পণ্যগুলি ক্লিক করলে 'অত্যন্ত' পছন্দসই হতে পারে!

4
আপনি ওয়েব প্রোটোকল ব্যবহার করতে চান না বলে আপনার কাস্টম সার্ভারের দরকার নেই। আপনি এখনও কোনও অ্যাপ্লিকেশন সার্ভার ব্যবহার করতে পারেন উদাহরণস্বরূপ একটি জে 2 ই ই ইজেবি ধারক, আপনি নিজের হাতে অনেকগুলি কার্যকারিতা সরবরাহ করবেন যেমন নির্ভরযোগ্য মেসেজিং, বিতরণ লেনদেন ইত্যাদি। ২০১১ সালে সি সার্ভারে একটি কাস্টম ওয়্যার প্রোটোকল লেখাকে কোনও অহং ট্রিপের মতো মনে হয় আমাকে.
জেরেমি

উত্তর:


7

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

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

  1. আপনার যদি সত্যিই খুব উচ্চতর স্কেল্যাবিলিটি প্রয়োজন হয় তবে বিবেচনা করুন যে আপনার সার্ভারগুলি সংখ্যাগুলি যত দ্রুত পারে তার চেয়ে বেশি মন্থর করার পরিবর্তে কীভাবে তাকে ভাগ করে দেবে। অবশেষে, আপনার একটি ভার থাকবে যে কোনও সার্ভার সত্যই গ্রহণ করতে পারে না যদিও ইন্টেল পৃথিবীতে দ্রুততম প্রসেসর তৈরি করে এবং গ্রাহক অর্থ প্রদানের জন্য প্রস্তুত! সুতরাং অনুরোধ রাউটিং এবং লোড ব্যালেন্সিং নিজেই প্রোটোকলের দক্ষতার চেয়ে গুরুত্বপূর্ণ।

  2. এইচটিটিপি এখনও সেরা - আপনার যদি স্কেল করা দরকার। (আপনি যদি লোড ব্যালেন্সারগুলি ব্যবহার করেন তবে এটি কেনা সহজ। কাস্টম প্রোটোকল কাস্টম ব্যবস্থা প্রয়োজন।

  3. এইচটিটিপি এর অর্থ এই নয় যে আপনাকে এইচটিএমএল, জাভা স্ক্রিপ্টের চারপাশে নিক্ষেপ করতে হবে। এমনকি আপনার নিয়মিত অ্যাপাচি সার্ভার এবং ওয়েব ব্রাউজার থাকা প্রয়োজনও নয়। আপনি দুটি কাস্টম ক্লায়েন্ট এবং এওএল সার্ভার বা লাইটথটিপিডি এর মতো উপাদানগুলির মধ্যে HTTP ব্যবহার করতে পারেন যা যোগাযোগ কোনও বিশাল ডেটা স্থানান্তর না হলে লাইব্রেরি হিসাবে ব্যবহার করা যেতে পারে। আপনি জিএসওএপির মতো সরঞ্জাম কিটগুলির সাথে উভয় পক্ষের এসওএপি ব্যবহার করতে পারেন ।

  4. এমনকি যদি এইচটিটিপি অবশ্যই বিলে ফিট না করে তবে বিইপি জাতীয় কিছু বিবেচনা করুন , যা আপনাকে জিনিসগুলিকে আরও দক্ষ করতে সহায়তা করে। বিকল্পভাবে অনেকগুলি প্রমাণিত আরপিসি, আরএমআই প্রক্রিয়া রয়েছে যা বিদ্যমান।

  5. ব্যাক-এন্ডে সমান্তরাল প্রসেসিং করে আপনি সর্বাধিক কাজ আরও করতে পারেন তা দেখার চেষ্টা করুন এবং কাজ শেষ হয়ে গেলে সার্ভারগুলি কেবল অনুসন্ধান করা হয়। যদি এই কাজগুলি হয় - এখানে এমপিআই এর মতো ফ্রেমওয়ার্ক রয়েছে বা এমন অনেকগুলি বিতরণযোগ্য কম্পিউটিং সরঞ্জাম কিট রয়েছে যা সহায়ক হতে পারে।

  6. অবশেষে, আমি সঠিক প্রয়োজনগুলি জানার মতো অবস্থানে নাও থাকতে পারি, তবে আপনাকে উভয়ই প্রয়োজন হলে আপনাকে প্রচুর ডেটা বিতরণ করতে হবে বা প্রচুর গণনা করতে হবে - এখনও কিছু মূল স্থাপত্য অদক্ষতা রয়েছে।

আমার কাছে, একটি নতুন প্রোটোকল তৈরি করা, এবং একটি নতুন সার্ভার ফ্রেমওয়ার্ক তৈরি করার চেয়ে দ্বৈত পরীক্ষা যা আপনার একসাথে করা উচিত নয়। যদি আপনার পদক্ষেপগুলি এত বেশি হয় তবে প্রথমে আপনার এখন পর্যন্ত যা করা হয়েছে তার সীমাটি দেখার জন্য বিদ্যমান সরঞ্জামগুলির সাথে পরীক্ষার চেষ্টা করা উচিত - তবেই আপনি আসল চ্যালেঞ্জগুলি জানতে পারবেন।

কেবলমাত্র ওয়েব অ্যাপ্লিকেশনগুলির চেয়ে বিতরণ ব্যবস্থার গবেষণায় আরও অনেক কিছুই সম্পন্ন হয়েছে। সুতরাং আপনি যে গবেষণা করা উচিত।

Dipan।


2

এটি আমার কাছে খুব একাডেমিক বলে মনে হচ্ছে। এবং প্রকৃতপক্ষে, আমি দ্বিতীয় মনোভাবটি ঠিক তেমনি একতরফা হতে পারি find এটি আপনার যতদূর যেতে হবে:

  1. অনুরোধটি পার্স করুন
  2. অনুরোধটি হ্যান্ডেল করুন

অনুরোধ পরামিতিগুলির উপর ভিত্তি করে নির্বাচিত অনুরোধ হ্যান্ডলারটি অনুরোধটি পরিচালনা করার সমস্ত দিককে আবশ্যক। হ্যান্ডলারটি আসলে আপনার ডেটা স্টোরটিতে কোয়েরি করে এবং না তা তথ্য ফেরত দেওয়ার জন্য এটি স্ট্যান্ডার্ড ফর্ম্যাটিং ব্যবহার করে কিনা তা উপরের স্তর থেকে অপ্রাসঙ্গিক। প্রকৃতপক্ষে, এটি সম্ভবত এটি করবে তবে এটি সম্পর্কে অনুমান করার কোনও মূল্য নেই।


1
  1. মনোলিথিক কার্নেলটি মাইক্রোকার্নেলের চেয়ে অনেক বেশি পুরানো । এটি ইউনিক্সে ব্যবহৃত হয়েছে। মাইক্রোকারেল আইডিয়া 1980 এর দশকের শেষে হাজির ।

  2. মোনোলিথিক কার্নেলগুলির ওএসের উদাহরণ হ'ল ইউনিক্স, লিনাক্স এবং মাইক্রোকার্নেল থাকা ওএস হ'ল কিউএনএক্স, এল 4, এইচআরডি , প্রাথমিকভাবে ম্যাক (ম্যাক ওএস এক্স নয়) পরে এটি হাইব্রিড কার্নেলে রূপান্তরিত হবে, এমনকি মিনিক্সও খাঁটি কার্নেল নয় কারণ ডিভাইস ড্রাইভার রয়েছে কার্নেলের অংশ হিসাবে সংকলিত

  3. মোনোলিথিক কার্নেল মাইক্রোকার্নেলের চেয়ে দ্রুত । প্রথম মাইক্রোকার্নেল মাচটি মনোলিথিক কার্নেলের চেয়ে 50% ধীর এবং পরে L4 এর মতো সংস্করণ মনোলিথিক কার্নেলের তুলনায় কেবল 2% বা 4% ধীর

  4. মনোলিথিক কার্নেল সাধারণত বিশাল হয় । বিশুদ্ধ একরঙা কার্নেলটি আকারে ছোট হতে হবে এমনকি প্রসেসরের প্রথম স্তরের ক্যাশে (প্রথম প্রজন্মের মাইক্রোকার্নেল) আকারেও ফিট হতে পারে ।

  5. মনোলিথিক কার্নেল ডিভাইস ড্রাইভারের মধ্যে কার্নেল স্পেসে থাকে । যখন মাইক্রোকার্নেল ডিভাইসে ড্রাইভার ব্যবহারকারী স্পেসে থাকে

  6. যেহেতু ডিভাইস ড্রাইভার কার্নেল স্পেসে বাস করে এটি মোনোলিথিক কার্নেলকে মাইক্রোকার্নেলের চেয়ে কম সুরক্ষিত করে তোলে । (ড্রাইভারের ব্যর্থতা ক্র্যাশ হতে পারে) অন্যদিকে মাইক্রোকার্নেলগুলি কিছু সামরিক ডিভাইসে ব্যবহৃত একচেটিয়া কার্নেলের চেয়ে বেশি সুরক্ষিত

  7. মোনোলিথিক কার্নেলগুলি আইপিসি নিশ্চিত করতে সংকেত এবং সকেট ব্যবহার করে যখন মাইক্রোকের্নেল পদ্ধতির বার্তার সারি ব্যবহার করা হয় । 1 জেনার মাইক্রোকারেল দুর্বলভাবে প্রয়োগ করা আইপিসি তাই কনটেক্সট সুইচগুলিতে ধীর ছিল।

  8. একটি একশিলা সিস্টেম বিত্ত নতুন বৈশিষ্ট্য যোগ করার পুরো কার্নেল recompiling করার সময় আপনি নতুন বৈশিষ্ট্য বা প্যাচ যোগ করতে পারেন recompiling ছাড়া

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.