Node.js Architecture

Node.js -, -

Node.js আর্কিটেকচার কি?

Node.js -, - , , .

এটি স্কেলযোগ্য নেটওয়ার্ক অ্যাপ্লিকেশন, রিয়েল-টাইম অ্যাপ্লিকেশন এবং API তৈরির জন্য Node.js কে আদর্শ করে তোলে।

বিরামহীন I/O

দীর্ঘ I/O অপারেশন মূল থ্রেড ব্লক করে না

ঘটনা ভিত্তিক

ইভেন্ট এবং কলব্যাকের উপর ভিত্তি করে কাজ করে

একক থ্রেডেড

ইভেন্ট লুপ সহ একক প্রধান থ্রেড

অ্যাসিঙ্ক্রোনাস অপারেশন

কাজগুলি সমান্তরালভাবে চলে, ক্রমানুসারে নয়

Node.js আর্কিটেকচার ডায়াগ্রাম

Node.js :

1

ক্লায়েন্ট অনুরোধ পর্ব

ক্লায়েন্টরা Node.js সার্ভারে অনুরোধ পাঠায়

প্রতিটি অনুরোধ ইভেন্ট সারিতে যোগ করা হয়

2

ইভেন্ট লুপ গ্রিড

ইভেন্ট লুপ ক্রমাগত ইভেন্ট সিকোয়েন্স চেক করে

একটি লুপে একের পর এক অনুরোধ নেয়

3

অনুরোধ প্রক্রিয়াকরণ

সহজ (অ-ব্লকিং) কাজগুলি প্রধান থ্রেড দ্বারা অবিলম্বে পরিচালনা করা হয়

জটিল/অবরুদ্ধ কাজগুলি থ্রেড গ্রুপে উল্লেখ করা হয়

4

প্রতিক্রিয়া পর্ব

ব্লক করার কাজগুলি সম্পূর্ণ হলে, তাদের কলব্যাকগুলি কলব্যাক সারিতে স্থাপন করা হয়

ইভেন্ট লুপ কলব্যাক প্রক্রিয়া করে এবং প্রতিক্রিয়া পাঠায়

বিরামহীন উদাহরণ

উদাহরণ: বিজোড় ফাইল পড়া

const fs = require('fs');
console.log('Before file read');
fs.readFile('myfile.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log('File contents:', data);
});
console.log('After file read');

লক্ষ্য করুন কিভাবে ফাইলের বিষয়বস্তুর আগে "ফাইল পড়ার পরে" মুদ্রিত হয়, যা দেখায় যে Node.js ফাইল অপারেশন শেষ হওয়ার জন্য অপেক্ষা করে না।

ব্লকিং কোড

// ব্লকিং কোডের উদাহরণ console.log('স্টার্ট অব ব্লকিং কোড'); const data = fs.readFileSync('myfile.txt', 'utf8'); // এখানে ব্লক console.log('ব্লকিং অপারেশন সম্পন্ন');

বিরামহীন কোড

// বিজোড় কোড উদাহরণ console.log('নন-ব্লকিং কোডের শুরু'); fs.readFile('myfile.txt', 'utf8', (ভ্রান্তি, ডেটা) => { if (err) error নিক্ষেপ; console.log('নন-ব্লকিং অপারেশন সম্পন্ন'); }); console.log('ফাইল পড়ার আগে এটি চলে');

🔑মূল পার্থক্য:

প্রথম উদাহরণটি ফাইলটি পড়া না হওয়া পর্যন্ত সম্পূর্ণ প্রক্রিয়াটিকে অবরুদ্ধ করে, যখন দ্বিতীয় উদাহরণটি ফাইলটি পড়ার সময় অন্যান্য ক্রিয়াকলাপগুলি চালিয়ে যাওয়ার অনুমতি দেয়।

কখন Node.js ব্যবহার করবেন

Node.js :

I/O-বাউন্ড অ্যাপ্লিকেশন

ফাইল অপারেশন, ডাটাবেস প্রশ্ন, নেটওয়ার্ক অনুরোধ

রিয়েল টাইম অ্যাপ্লিকেশন

চ্যাট অ্যাপ, লাইভ বিজ্ঞপ্তি, সহযোগিতার টুল

এপিআই

আরামদায়ক পরিষেবা, গ্রাফকিউএল এপিআই

মাইক্রোসার্ভিস

ছোট, স্বাধীন পরিষেবা

⚠️দ্রষ্টব্য:

Node.js CPU- , . , :

  • কর্মী থ্রেড ব্যবহার করে
  • সবচেয়ে উপযুক্ত ভাষায় একটি মাইক্রোসার্ভিস তৈরি করা
  • প্রাকৃতিক সম্পূরক ব্যবহার করে

সারাংশ

Node.js , .

এটি ন্যূনতম সংস্থানগুলির সাথে একযোগে হাজার হাজার সংযোগ পরিচালনা করার অনুমতি দেয়।

একাধিক যুগপত সংযোগ

দক্ষতার সাথে একাধিক সমবর্তী সংযোগ পরিচালনা করে

I/O-বাউন্ড অ্যাপ্লিকেশন

I/O- আবদ্ধ অ্যাপ্লিকেশনের জন্য দুর্দান্ত

JavaScript

ক্লায়েন্ট এবং সার্ভার উভয় দিকেই জাভাস্ক্রিপ্ট ব্যবহার করে

দারুণ পরিবেশ

প্যাকেজগুলির একটি বড় পরিবেশ (এনপিএম)

অনুশীলন করুন

সঠিক শব্দ চয়ন করুন।

Node.js is built on a ______ architecture.

single-threaded event-driven
✓ ঠিক আছে! Node.js একটি একক-থ্রেডেড, ইভেন্ট-চালিত আর্কিটেকচার ব্যবহার করে
multi-threaded synchronous
✗ ভুল! Node.js মাল্টি-থ্রেডেড নয়, এটি একক-থ্রেডেড এবং অ্যাসিঙ্ক্রোনাস
procedural blocking
✗ ভুল! Node.js নন-ব্লকিং এবং ইভেন্ট-ভিত্তিক, পদ্ধতিগত ব্লকিং নয়
object-oriented synchronous
✗ ভুল! Node.js অ্যাসিঙ্ক্রোনাস, সিঙ্ক্রোনাস নয়