নেট বনাম অ্যাপাচি এমআইএনএ


144

তারা উভয়ই প্রায় একই কার্যকারিতা সরবরাহ করে। আমার উচ্চ-পারফরম্যান্স টিসিপি সার্ভারটি বিকাশের জন্য আমার কোনটি বেছে নেওয়া উচিত? উপকারিতা কি কি?

রেফারেন্স লিঙ্ক:

অ্যাপাচি মিনা ( উত্স )

নেট ( উত্স )


6
তুলনায় গ্রিজলি যুক্ত করা আকর্ষণীয়ও হবে।
চিহ্নিত করুন

গ্রিজলি হ'ল সম্পূর্ণ ভিন্ন জন্তু। এমনকি দু'টি দলই যখন কথা বলেছিল তখনও মিনাকে গ্রিজলি সমর্থনের ধারণা ছিল।
হার্ডকোড

1
@ হার্ডকোডযুক্ত আপনি বলেছেন গ্রিজলি সম্পূর্ণ ভিন্ন জন্তু, আমি এতে একজন নতুন আগত, আপনি কি দয়া করে পার্থক্যগুলি উল্লেখ করতে পারেন বা আমাকে এই বিষয়ে পড়তে একটি নিবন্ধ দিতে পারেন? আমি সত্যিই এটি প্রশংসা করব।
arg20

1
গ্রিজলির আলাদা ব্যাকগ্রাউন্ড রয়েছে এবং শেষ বার যখন আমি এটি দেখি তখন এটি বেশিরভাগই HTTP- ভিত্তিক অ্যাপ্লিকেশনগুলির পক্ষে উপযুক্ত ছিল suited আমি কেবল উদাহরণগুলি দেখেছি এবং অবাক হয়ে দেখেছি যে তারা এমআইএনএ বা নেটটির মতো খুব অনুরূপ কাঠামো ব্যবহার করছে। সুতরাং জানোয়ারটি আর আলাদা নয়
হার্ডকডেড

উত্তর:


211

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

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

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

তবে নেটটির তারকা আকর্ষণ, ইমো, "একটির কভারেজ" দিয়ে পাইপলাইন হ্যান্ডলারগুলি তৈরি করার ক্ষমতা। আপনি সম্ভবত এই ডকুমেন্টেশনে ইতিমধ্যে এই কভারেজ টীকাটি পড়েছেন তবে মূলত এটি আপনাকে কোডের একক লাইনে রাজ্য দেয়। আশেপাশে কোনও গোলযোগ নেই, কোনও সেশন মানচিত্র, সিঙ্ক্রোনাইজেশন এবং এর মতো জিনিস নেই, আমরা কেবল নিয়মিত ভেরিয়েবলগুলি ("ইউজার নেম" বলি) ঘোষণা করতে এবং সেগুলি ব্যবহার করতে সক্ষম হয়েছি।

কিন্তু তারপরে আমরা একটি রোড ব্লক মারলাম। এমআইএনএর অধীনে আমাদের ইতিমধ্যে একটি মাল্টি-প্রোটোকল সার্ভার রয়েছে, যাতে আমাদের অ্যাপ্লিকেশন প্রোটোকলটি টিসিপি / আইপি, এইচটিটিপি এবং ইউডিপি-র জুড়ে চলেছে। আমরা যখন নেটটিতে স্যুইচ করেছি আমরা কয়েক মিনিটের মধ্যে তালিকায় এসএসএল এবং এইচটিটিপিএস যুক্ত করেছি! এতদূর ভাল, তবে ইউডিপিতে আসার পরে আমরা বুঝতে পেরেছিলাম যে আমরা পিছলে পড়েছি। মিনা আমাদের জন্য খুব সুন্দর ছিল যে আমরা ইউডিপিকে "সংযুক্ত" প্রোটোকল হিসাবে বিবেচনা করতে পারি। নেটটির অধীনে এ জাতীয় কোনও বিমূর্ততা নেই। ইউডিপি সংযোগহীন এবং নেটটি এটির মতো আচরণ করে। নেট ইউআইডি-র সংযোগহীন প্রকৃতির অনেকটাই এমআইএনএর চেয়ে কম স্তরে প্রকাশ করে। মাইনা সরবরাহ করে এমন উচ্চ-স্তরের বিমূর্তির তুলনায় নেটটির অধীনে ইউডিপিতে আপনি যে জিনিসগুলি করতে পারেন সেগুলি রয়েছে তবে আমরা নির্ভর করেছি on

"সংযুক্ত ইউডিপি" র‌্যাপার বা কোনও কিছু যুক্ত করা এত সহজ নয়। সময়ের সীমাবদ্ধতা এবং ট্রাস্টিনের পরামর্শ অনুসারে অগ্রসর হওয়ার সর্বোত্তম উপায় হ'ল নেটটিতে আমাদের নিজস্ব পরিবহন সরবরাহকারী কার্যকর করা, যা দ্রুত হবে না, শেষ পর্যন্ত আমাদের নেটটি পরিত্যাগ করতে হয়েছিল।

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


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

137

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

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

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


21
ওহ, @ ট্রাস্টিন এমআইএনএ এবং নেট উভয়ের লেখক।
জেসন হিও

@ ট্রাস্টিন, আমি দেখেছি নেটটি 5.0 খুব উন্নত নথি সরবরাহ করে না, এবং অন্যান্য সংস্করণ সহ বর্তমান ওয়েব সামগ্রীতে কাজ করবে না। মধ্যবর্তী এবং উন্নত মিনা টিউটোরিয়ালটির জন্য আপনার কোনও প্রস্তাবিত লিঙ্ক আছে? ধন্যবাদ
কর্বেন

22

আমি 2 "গুগল প্রোটোফার আরপিসি" বাস্তবায়ন পরীক্ষা করেছি যেখানে একটি নেটটির উপর ভিত্তি করে ছিল (নেট-প্রোটোবুফ-আরপিসি) এবং অন্যটি মিনা (প্রোটোবুফ-মিনা-আরপিসি) এর উপর ভিত্তি করে ছিল। নেটটি সমস্ত বার্তার মাপের জন্য নিয়মিত দ্রুত (+ - 10%) হয়ে উঠেছে - যা নেটটি ওয়েব সাইটে সামগ্রিক পারফরম্যান্স দাবির ব্যাক আপ করে। যেহেতু আপনি যখন এই জাতীয় আরপিসি লাইব্রেরি ব্যবহার করেন তখন আপনি কোডের বাইরে থেকে প্রতিটি দক্ষতার বাইরে চলে যেতে চান, তাই নেটটির উপর ভিত্তি করে প্রোটোবুফ-আরপিসি-প্রো লেখা শেষ করেছি । আমি অতীতে মিনা ব্যবহার করেছি, তবে তাদের 2.0 ডকুমেন্টের ডকুমেন্টেশনে বড় গর্ত রয়েছে এবং API এর পশ্চাদপটে সামঞ্জস্যতা ভঙ্গ করে একটি বিয়োগ বিয়োগ করবে।


16

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


9

নেট সাইটে আপনি কিছু পারফরম্যান্স রিপোর্ট পেতে পারেন । যেমনটি প্রত্যাশিত :-) তারা সর্বোত্তম পারফরম্যান্স সহ নেটটিকে ফ্রেমওয়ার্ক হিসাবে দেখায়।

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


5

আমি নেটিকে পছন্দ করি।

টুইটার নেটটিও তার নতুন অনুসন্ধান সিস্টেম তৈরি করতে বেছে নিয়েছে এবং এটি দ্রুত 3x পর্যন্ত বাড়িয়েছে।

উত্তর: টুইটার অনুসন্ধান এখন 3x দ্রুততর

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


4

আমি কেবল কখনও সার্ভারের মতো একটি ছোট HTTP তৈরি করতে মিনাকে ব্যবহার করেছি। এখন পর্যন্ত এর মধ্যে সবচেয়ে বড় সমস্যাটি আমি নিয়ে চলেছি:

  1. এটি আপনার "অনুরোধ" এবং "প্রতিক্রিয়া" মেমরিতে ধারণ করবে। এটি কেবলমাত্র একটি সমস্যা কারণ আমি যে প্রোটোকলটি ব্যবহার করতে চাই তা হ'ল http। এটি পেতে আপনার নিজের প্রোটোকলটি ব্যবহার করতে পারেন।
  2. আপনি বড় ফাইলগুলি পরিবেশন করতে চান এমন ক্ষেত্রে স্ট্রিম অফ ডিস্ক সরবরাহ করার কোনও বিকল্প নেই। আপনার নিজের প্রোটোকল প্রয়োগ করে আবারও কাজ করা যেতে পারে

এটি সম্পর্কে দুর্দান্ত জিনিস:

  1. প্রচুর সংযোগ পরিচালনা করতে পারে
  2. যদি আপনি কোনও ধরণের বিতরণ কাজের সিস্টেম প্রয়োগ করতে চান তবে আপনার নোডগুলির মধ্যে কখন নীচে নেমে যায় এবং কোনও সংযোগ হারাবে তা জেনে রাখা কাজটি অন্য নোডে পুনরায় চালু করার জন্য দরকারী।

আপনি যখন "বড় বড় ফাইলগুলির জন্য স্ট্রিম অফ ডিস্ক" বলবেন, লোকেরা সাধারণত এর জন্য ইউডিপি ব্যবহার করে না?
জাঙ্গোফান

1
না T তারা টিসিপির মাধ্যমে কার্নেল সেন্ডফাইল (জাভাতে ফাইলচ্যানেল.টান্সফারটো হিসাবে প্রকাশিত) ব্যবহার করে।
জেবেলিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.