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
-
Pasang Node.js: Pastikan anda memasang Node.js pada versi terkini.
-
Pengurus Pakej: Gunakan npm atau benang untuk memasang kebergantungan.
-
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
- Pasang Kafka secara setempat atau dengan Docker.
- 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
-
Urus Ralat: Pastikan ralat dikendalikan dan mesej dihantar semula.
-
Idempotensi: Pastikan pemprosesan mesej adalah idempoten.
-
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!