Panduan Lengkap: Pemesejan dengan Node.js

Susan Sarandon
Lepaskan: 2024-11-12 04:07:01
asal
662 orang telah melayarinya

Guia Completo: Mensageria com Node.js

Pemesejan dalam Node.js ialah amalan penting untuk mencipta sistem berskala, berdaya tahan dan tak segerak, terutamanya dalam seni bina berasaskan perkhidmatan mikro. Panduan ini merangkumi konsep asas kepada pelaksanaan praktikal dengan perpustakaan popular seperti RabbitMQ dan Kafka.


1. Apakah Pemesejan dan Mengapa Menggunakannya?

Pemesejan ialah proses menghantar, menerima dan mengurus mesej antara perkhidmatan atau komponen perisian. Ia berguna untuk:

  • Penyahgandingan: Membenarkan perkhidmatan menjadi bebas.
  • Skalabiliti: Menguruskan beban trafik yang tinggi dengan mengedarkan mesej.
  • Ketahanan: Memastikan pemprosesan mesej walaupun sekiranya berlaku kegagalan sementara.

Senario Penggunaan Biasa:

  • Baris gilir kerja latar belakang.
  • Komunikasi antara perkhidmatan mikro.
  • Pemprosesan masa nyata seperti penjejakan aktiviti.

2. Mengkonfigurasi Persekitaran Node.js

  1. Pasang Node.js: Pastikan anda memasang Node.js pada versi terkini.
  2. Pengurus Pakej: Gunakan npm atau benang untuk memasang kebergantungan.
  3. Kebergantungan asas:
    • dotenv untuk pembolehubah persekitaran.
    • amqplib atau kafkajs untuk berkomunikasi dengan perkhidmatan pemesejan.
npm install dotenv amqplib
Salin selepas log masuk
Salin selepas log masuk

3. Protokol dan Alat Pemesejan

ArnabMQ:

RabbitMQ ialah broker AMQP yang digunakan secara meluas untuk bertukar-tukar mesej.

  • Digunakan untuk baris gilir dan pertukaran mesej (langsung, topik, fanout, pengepala).
  • Memudahkan piawaian seperti RPC (Panggilan Prosedur Jauh) dan Pub/Sub.

Apache Kafka:

Sesuai untuk penstriman data berskala besar.

  • Didorong oleh acara.
  • Prestasi tinggi untuk pemprosesan masa nyata.

Pilihan Lain:

  • Redis Streams: Lebih ringkas dan lebih pantas untuk kes tertentu.
  • MQTT: Digunakan dalam IoT untuk komunikasi ringan antara peranti.

4. Pelaksanaan Asas dengan RabbitMQ

Langkah 1: Konfigurasikan Pelayan RabbitMQ

  • Pasang dan jalankan RabbitMQ (tempatan atau dalam bekas Docker):
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Sambung ke RabbitMQ

Gunakan perpustakaan amqplib untuk membuat sambungan dan baris gilir.

npm install dotenv amqplib
Salin selepas log masuk
Salin selepas log masuk

5. Pelaksanaan dengan Kafka

Kafka memerlukan perpustakaan kafkajs.

Persediaan Awal

  1. Pasang Kafka secara setempat atau dengan Docker.
  2. Pasang perpustakaan:
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
Salin selepas log masuk
Salin selepas log masuk

Pengeluar dan Pengguna dengan KafkaJS

Pengeluar:

const amqp = require('amqplib');

async function connect() {
  try {
    const connection = await amqp.connect('amqp://localhost');
    const channel = await connection.createChannel();
    const queue = 'tasks';

    await channel.assertQueue(queue, { durable: true });

    console.log(`Waiting for messages in ${queue}`);
    channel.consume(queue, (msg) => {
      console.log(`Received: ${msg.content.toString()}`);
      channel.ack(msg);
    });
  } catch (err) {
    console.error('Error:', err);
  }
}

connect();
Salin selepas log masuk

Pengguna:

   npm install kafkajs
Salin selepas log masuk

6. Amalan Baik

  1. Urus Ralat: Pastikan ralat dikendalikan dan mesej dihantar semula.
  2. Idempotensi: Pastikan pemprosesan mesej adalah idempoten.
  3. Pantau sistem: Gunakan alatan seperti Prometheus dan Grafana untuk menjejak metrik.

7. Sumber Tambahan

  • Dokumentasi rasmi RabbitMQ dan KafkaJS.
  • Kaji Seni Bina Bersih untuk menyusun sistem pemesejan【6】【7】【8】.

Dengan langkah-langkah ini, anda akan mempunyai aplikasi yang mantap untuk mengendalikan pemesejan dalam Node.js, bersedia untuk skala dan memenuhi permintaan moden. Jika anda memerlukan bantuan dengan kes tertentu, jangan ragu untuk bertanya!

Atas ialah kandungan terperinci Panduan Lengkap: Pemesejan dengan Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan