cari
Rumahhujung hadapan webtutorial jsKelompokkan Aplikasi Node.js Anda untuk Prestasi Lebih Baik

Node.js terkenal dengan kelajuan dan kecekapan, menjadikannya pilihan popular untuk membina aplikasi berprestasi tinggi dan berskala.
Walau bagaimanapun, di luar kotak, Node.js adalah satu-benang, bermakna ia berjalan pada satu teras CPU, yang boleh mengehadkan dalam persekitaran pelayan berbilang teras. Jika aplikasi anda intensif sumber atau anda menjangkakan trafik yang tinggi, anda perlu memaksimumkan penggunaan teras CPU pelayan anda.
Di situlah pengelompokan Node.js masuk.

Dalam siaran ini, kami akan menyelami apa itu pengelompokan Node.js, mengapa ia penting dan cara anda boleh menggunakannya untuk meningkatkan prestasi aplikasi anda.

Apakah Pengelompokan Node.js?

Pengkelompokan Node.js ialah teknik yang membolehkan anda menggunakan semua teras CPU dengan menghasilkan berbilang kejadian (pekerja) aplikasi Node.js anda.
Pekerja ini berkongsi pelabuhan yang sama dan diuruskan oleh proses induk. Setiap pekerja boleh mengendalikan permintaan masuk secara bebas, membenarkan permohonan anda mengagihkan beban kerja dan memproses permintaan secara selari.

Dengan mengelompokkan aplikasi Node.js anda, anda boleh:

  • Gunakan berbilang teras CPU
  • Tingkatkan prestasi aplikasi
  • Berikan toleransi kesalahan sekiranya seorang pekerja terhempas
  • Skalakan secara mendatar tanpa terlalu merumitkan pangkalan kod

Bagaimana Pengelompokan Berfungsi?

Dalam gugusan Node.js, terdapat proses induk yang mengawal beberapa proses pekerja.
Proses induk tidak mengendalikan permintaan HTTP secara langsung tetapi mengurus pekerja yang melakukannya. Permintaan daripada pelanggan diedarkan ke seluruh pekerja ini, mengimbangi beban dengan cekap.

Jika proses pekerja ranap atas sebab tertentu, proses induk boleh melahirkan proses baharu, memastikan masa henti yang minimum.

Bilakah Anda Harus Menggunakan Pengelompokan?

Pengelompokkan amat berguna apabila aplikasi anda:

  • Mengalami trafik yang tinggi dan perlu mengendalikan banyak permintaan serentak
  • Melaksanakan tugas terikat CPU seperti pengekodan video, pemprosesan imej atau penghuraian data berskala besar.
  • Berjalan pada pemproses berbilang teras yang tidak digunakan sepenuhnya Jika aplikasi anda menghabiskan banyak masa menunggu operasi I/O, seperti pertanyaan pangkalan data atau panggilan API, pengelompokan mungkin tidak meningkatkan prestasi dengan ketara.

Dalam kes di atas, anda boleh meningkatkan melalui menggunakan teknik pengaturcaraan tak segerak.

Cara Melaksanakan Pengelompokan dalam Node.js

Node.js menyediakan modul kluster terbina dalam untuk mencipta kluster dengan mudah. Mari kita lihat contoh mudah cara mengelompokkan aplikasi Node.js anda.

Langkah 1: Sediakan Aplikasi Anda
Sebelum menambah pengelompokan, anggap anda mempunyai pelayan HTTP yang mudah (server.js):

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200);
  res.end('Hello World\n');
});

server.listen(3000, () => {
  console.log(`Worker process ID: ${process.pid} is listening on port 3000`);
});

Aplikasi ini berjalan pada satu teras. Mari ubah suai untuk menggunakan pengelompokan.

Langkah 2: Menggunakan Modul kluster
Modul kluster membolehkan kami menukar proses semasa ke dalam berbilang proses pekerja. Begini cara melaksanakan pengelompokan:

const cluster = require('cluster');
const http = require('http');
const os = require('os');

// Get the number of CPU cores
const numCPUs = os.cpus().length;

if (cluster.isMaster) {
  console.log(`Master process ID: ${process.pid}`);

  // Fork workers for each CPU core
  for (let i = 0; i  {
    console.log(`Worker ${worker.process.pid} died. Spawning a new one...`);
    cluster.fork();
  });
} else {
  // Workers share the same TCP connection
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end('Hello from worker ' + process.pid + '\n');
  }).listen(3000);

  console.log(`Worker process ID: ${process.pid}`);
}

Penjelasan:
1. Proses Induk: Apabila proses bermula, ia menyemak sama ada ia adalah proses induk (cluster.isMaster). Tuan bertanggungjawab untuk membuat proses pekerja, satu untuk setiap teras CPU. Kaedah os.cpus() digunakan untuk mendapatkan semula bilangan teras CPU yang tersedia.

2. Proses Pekerja: Untuk setiap teras CPU, pekerja baharu dicabang (cluster.fork()). Proses pekerja ini menjalankan pelayan HTTP dan mengendalikan permintaan masuk.

3. Toleransi Kesalahan: Jika proses pekerja ranap, peristiwa cluster.on('exit') akan dicetuskan dan pekerja baharu akan muncul untuk menggantikan yang mati.

Langkah 3: Menguji Aplikasi Berkelompok Anda
Sekarang, jika anda menjalankan aplikasi:

node server.js

Cluster Your Node.js Application for Better Performance

Anda akan perasan bahawa berbilang pekerja dibuat, masing-masing dengan ID proses yang unik. Setiap permintaan dikendalikan oleh pekerja yang berbeza, mengimbangi beban dengan berkesan.

Anda boleh menguji cara pengelompokan meningkatkan prestasi aplikasi anda dengan menghantar berbilang permintaan dan memerhatikan cara beban kerja diagihkan di kalangan pekerja.

Jadi, pada kali seterusnya anda membina aplikasi Node.js berprestasi tinggi, ingat untuk mempertimbangkan pengelompokan!

Itu sahaja untuk blog ini! Nantikan lebih banyak kemas kini dan teruskan membina apl yang menakjubkan! ?✨
Selamat mengekod! ?

Atas ialah kandungan terperinci Kelompokkan Aplikasi Node.js Anda untuk Prestasi Lebih Baik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
JavaScript: meneroka serba boleh bahasa webJavaScript: meneroka serba boleh bahasa webApr 11, 2025 am 12:01 AM

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Evolusi JavaScript: Trend Semasa dan Prospek Masa DepanEvolusi JavaScript: Trend Semasa dan Prospek Masa DepanApr 10, 2025 am 09:33 AM

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Demystifying JavaScript: Apa yang berlaku dan mengapa pentingDemystifying JavaScript: Apa yang berlaku dan mengapa pentingApr 09, 2025 am 12:07 AM

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Adakah Python atau JavaScript lebih baik?Adakah Python atau JavaScript lebih baik?Apr 06, 2025 am 12:14 AM

Python lebih sesuai untuk sains data dan pembelajaran mesin, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kaya, dan sesuai untuk analisis data dan pembangunan web. 2. JavaScript adalah teras pembangunan front-end. Node.js menyokong pengaturcaraan sisi pelayan dan sesuai untuk pembangunan stack penuh.

Bagaimana saya memasang javascript?Bagaimana saya memasang javascript?Apr 05, 2025 am 12:16 AM

JavaScript tidak memerlukan pemasangan kerana ia sudah dibina dalam pelayar moden. Anda hanya memerlukan editor teks dan penyemak imbas untuk memulakan. 1) Dalam persekitaran penyemak imbas, jalankan dengan memasukkan fail HTML melalui tag. 2) Dalam persekitaran Node.js, selepas memuat turun dan memasang node.js, jalankan fail JavaScript melalui baris arahan.

Bagaimana cara menghantar pemberitahuan sebelum tugas bermula di kuarza?Bagaimana cara menghantar pemberitahuan sebelum tugas bermula di kuarza?Apr 04, 2025 pm 09:24 PM

Cara Menghantar Pemberitahuan Tugas di Quartz terlebih dahulu Apabila menggunakan pemasa kuarza untuk menjadualkan tugas, masa pelaksanaan tugas ditetapkan oleh ekspresi cron. Sekarang ...

Dalam JavaScript, bagaimana untuk mendapatkan parameter fungsi pada rantaian prototaip dalam pembina?Dalam JavaScript, bagaimana untuk mendapatkan parameter fungsi pada rantaian prototaip dalam pembina?Apr 04, 2025 pm 09:21 PM

Cara mendapatkan parameter fungsi pada rantaian prototaip dalam JavaScript dalam pengaturcaraan JavaScript, pemahaman dan memanipulasi parameter fungsi pada rantaian prototaip adalah tugas yang biasa dan penting ...

Apakah sebab kegagalan perpindahan gaya dinamik Vue.js dalam program WeChat Mini Webview?Apakah sebab kegagalan perpindahan gaya dinamik Vue.js dalam program WeChat Mini Webview?Apr 04, 2025 pm 09:18 PM

Analisis sebab mengapa kegagalan anjakan gaya dinamik menggunakan vue.js dalam pandangan web applet weChat menggunakan vue.js ...

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa