নোড.জেএস সান্টেড সিস্টেমটি আক্কার অভিনেতার ধরণের চেয়ে আলাদা কীভাবে?


94

আমি Node.jsকিছুক্ষণের জন্য কাজ করেছি এবং নিজেকে জাভাতে বেশ ভাল বলে বিবেচনা করেছি। তবে আমি সবেমাত্র আবিষ্কার করেছি Akkaএবং সাথে সাথে এর অভিনেতার ধরণে (আমি যা বুঝি) আগ্রহী।

এখন ধরে নেওয়া, আমার জাভাস্ক্রিপ্ট দক্ষতা আমার স্কালা / জাভা দক্ষতার সাথে সমান, আমি উভয় পদ্ধতির ব্যবহারিকতার দিকে মনোনিবেশ করতে চাই। বিশেষত ওয়েব পরিষেবাদির শর্তাবলী।

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

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

আমি জটিল ব্যবসায়িক যুক্তি নিয়ে কাজ করে এমন অনেকগুলি অ্যাপ্লিকেশনগুলিতে কাজ করি এবং আমি ভাবছি এটি এক বা অন্যটিতে ভারী ভারী লাফিয়ে যাওয়ার সময় এসেছে। বিশেষত উত্তরাধিকার স্ট্রুটস এবং সি # অ্যাপ্লিকেশনগুলি আপগ্রেড করা।

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

সম্পাদনা

দেখে মনে হচ্ছে আমি কাছাকাছি ভোট পাচ্ছি। দয়া করে এই প্রশ্নটিকে "কোনটি ভাল, নোড বা আক্কা?" হিসাবে গ্রহণ করবেন না? আমি যা খুঁজছি তা হ'ল নোডের মতো ইভেন্ট চালিত গ্রন্থাগারগুলির মধ্যে মৌলিক পার্থক্য এবং আককার মতো অভিনেতাভিত্তিক।


12
আমি আপনাকে নিকটবর্তী সমস্ত ভোটারকে "চলে যেতে" বলার জন্য ভোট
দিয়েছি

@ সিবিএমিক্স আমি জিজ্ঞাসা করতে পারি আপনি কী বেছে নিয়েছেন এবং এটি আপনার পছন্দের সাথে কীভাবে চলছে?
জাস

উত্তর:


66

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

গুরুত্বের আরেকটি পার্থক্য হ'ল আক্কা একটি কাঠামোগত উপায়ে ব্যর্থতা পরিচালনা করার জন্য একটি সিস্টেম অন্তর্ভুক্ত করে (প্রতিটি অভিনেতাকে তার পিতামাতার তত্ত্বাবধানে রাখা, এটি বাধ্যতামূলক) যেখানে নোড.জেস কলব্যাক থেকে কলব্যাকে ত্রুটি শর্তগুলি লেখকদের জন্য সম্মেলনের উপর নির্ভর করে। অন্তর্নিহিত সমস্যাটি হ'ল অ্যাসিনক্রোনাস সিস্টেমগুলি সিঙ্ক্রোনাস স্ট্যাক-ভিত্তিক সিস্টেমগুলির দ্বারা নিযুক্ত ব্যতিক্রমগুলির স্ট্যান্ডার্ড পদ্ধতির ব্যবহার করতে পারে না, কারণ কলব্যাকের ত্রুটি হওয়ার সাথে সাথে "কলিং" কোডটি বিভিন্ন কাজে চলে যাবে। সিস্টেমে বিল্ট হ্যান্ডলিং থাকার ফলে এটি সম্ভবত সিস্টেমটিতে নির্মিত অ্যাপ্লিকেশনগুলি শক্তিশালী makes

উপরেরটি সম্পূর্ণরূপে বোঝানো নয়, আমি নিশ্চিত যে আরও অনেক পার্থক্য রয়েছে।


4
আপনি কি মনে করেন প্লে-ফ্রেম ওয়ার্ক বা স্প্রে ব্যবহার করা ভাল উপায় যদি আমি বিশ্রামের জন্য ওয়েব অ্যাপ্লিকেশন তৈরির জন্য আকাকে ব্যবহার করার সিদ্ধান্ত নিই?
ses

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

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

4
নোডের সাথে সমান্তরালতার ক্ষেত্রে এটি উল্লেখ করা উচিত যে আপনি রানস্টার সময়ে তার ক্লাস্টার কোর এপিআই দিয়ে প্রক্রিয়াগুলি কাঁটাচামচ করতে পারেন । সমান্তরাল অভিনেতাদের দ্বারা আপনি যা বোঝাতে চাইছেন এটি তা করবে।
কার্নেল

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

8

আমি এখনও আক্কা ব্যবহার করিনি, তবে মনে হচ্ছে এটি জাং-এর মতো তবে জাভাতে। এরলংয়ে সমস্ত প্রক্রিয়া আক্কার অভিনেতাদের মতো, তাদের মেলবক্স রয়েছে, আপনি তাদের মধ্যে বার্তা পাঠাতে পারেন, আপনার কাছে সুপারভাইজার রয়েছে etc.

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

এরং প্রিম্পিটিভ টাস্ক স্যুইচিং ব্যবহার করে। যখন আপনার দীর্ঘ লুপ রয়েছে, সিস্টেম এটি অন্য ক্রিয়াকলাপ চালাতে বিরতি দিতে পারে এবং কিছু সময় পরে চালিয়ে যেতে পারে। যদি আপনি কেবল সংক্ষিপ্ত ক্রিয়াকলাপ করেন তবে বৃহত্তর সম্মতিতে নোড.জেএস ভাল। উভয়ই লক্ষ লক্ষ ক্লায়েন্টকে সমর্থন করে: http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/ http://blog.whatsapp.com/index.php/2012/01/ 1 মিলিয়ন-তাই-২০১১ /

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


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

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

ধন্যবাদ আমি এটিকে node vs akkaবিতর্কে পরিণত না করার জন্য খুব চেষ্টা করছি তবে আমার একটি আসল সমস্যাটি সমাধান করা দরকার। আমি বলব যে আমার জাভা / জাভাস্ক্রিপ্ট দক্ষতাগুলি খুব কাছাকাছি তবে নোডের সাথে আমার খুব কম অভিজ্ঞতা আছে এবং একে একে (বা স্কালার) সাথে কোনওটিই নেই। তবে আমার বেশ কয়েকটি অ্যাপ্লিকেশন রয়েছে (এখনকার জন্য অভ্যন্তরীণ তবে পরে বাহ্যিক) এবং লোকেরা এই বিশাল লগগুলি অনুসন্ধান করার জন্য উপায়গুলি সন্ধান করছে। গোপনীয়তার কারণে বাহ্যিক তৃতীয় পক্ষের বিকল্পগুলি ব্যবহার করতে পারবেন না। মনে হয় হয় হয় কাজ পরিচালনা করবে। তবে আমি একেএমএর বার্তাটি পছন্দ করি যাতে আমি এটি অন্বেষণ করতে পারি। প্লাস জাভা এখানে জেএস এর চেয়ে বেশি ধাক্কা দেওয়া হয়। ধন্যবাদ
cbmeeks

আপনার যদি বিশাল লগগুলি অনুসন্ধানের প্রয়োজন হয় তবে লগস্ট্যাশ বা গ্রেলগ 2 এ চেষ্টা করুন।
টোডিয়াস ঝো

6

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

অভিনেত্রী মডেলের তুলনায় কোনও সানডে থাকা সিস্টেমটি কীভাবে তুলনা করে, আমি বিজ্ঞ ব্যক্তিদের এটি বর্ণনা করতে দেব। অভিনেতা মডেল সম্পর্কে কয়েকটি সংক্ষিপ্ত পয়েন্ট:

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

এছাড়াও, নাটকটি পরীক্ষা করে দেখুন । এটি অন্য নোডেজ অভিনেতা মডেল বাস্তবায়ন।


4
নোডেজ দিয়ে একটি ক্লাস্টার স্থাপন করার চেষ্টা করুন, আপনার ডকার, কুবেরনিটি এবং বিতরণ সিস্টেমটি কারুকাজ করা দরকার। নোডেজগুলিতে আরও 1 টি কোর ব্যবহারের সেট আপ করার চেষ্টা করুন। আক্কা এটি মোকাবেলা করার জন্য ডিজাইন করা হয়। নোডেজ নিজেই পরিপক্কতা, সুরক্ষা এবং কিছু করার জন্য অন্য কাঠামোর প্রয়োজন এমন কোডের পন্থা, এমন একটি বিষয় যা নোডেজ নিজেই বড় বিতরণ ব্যবস্থার জন্য ব্যবহার করা যায় না, তবে কমপক্ষে এমএসএর ফ্যাশনে। আমার মতামত যাইহোক।
রাফাএলো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.