
node.js 中的消息传递是创建可扩展、弹性和异步系统的基本实践,尤其是在基于微服务的架构中。本指南涵盖了 rabbitmq 和 kafka 等流行库的实际实施的基本概念。
常见使用场景:
npm install dotenv amqplib
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
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();
npm install kafkajs
制作人:
const { kafka } = require('kafkajs');
const kafka = new kafka({ clientid: 'my-app', brokers: ['localhost:9092'] });
const producer = kafka.producer();
async function sendmessage() {
await producer.connect();
await producer.send({
topic: 'test-topic',
messages: [{ value: 'hello kafkajs' }],
});
await producer.disconnect();
}
sendmessage();
消费者:
const consumer = kafka.consumer({ groupId: 'test-group' });
async function consumeMessages() {
await consumer.connect();
await consumer.subscribe({ topic: 'test-topic', fromBeginning: true });
await consumer.run({
eachMessage: async ({ topic, partition, message }) => {
console.log({
partition,
value: message.value.toString(),
});
},
});
}
consumeMessages();
以上就是完整指南:使用 Nodejs 进行消息传递的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号