如何在Debian上使用Node.js实现消息队列
在Debian系统中,安装RabbitMQ和Node.js,利用amqplib库编写生产者与消费者代码,实现了消息队列的基本收发:生产者向hello队列发送消息,消费者接收并确认消息,完成简单示例流程。
在 Debian 上折腾消息队列,Node.js 是个很顺手的搭档。具体选哪个消息队列系统,RabbitMQ、Redis、Kafka 各有各的适用场景。这里以 RabbitMQ 为例,把从安装到跑通一个简单收发流程的完整步骤拆开讲清楚。

步骤1:安装RabbitMQ
先把包列表更新到最新,然后直接安装 RabbitMQ 服务器,一气呵成。
sudo apt update
sudo apt install rabbitmq-server
装好后启动服务,顺便把管理插件也开起来——这样就能通过浏览器直观地查看队列状态,排查问题时特别方便。
sudo systemctl start rabbitmq-server
sudo rabbitmq-plugins enable rabbitmq_management
管理界面默认监听在 http://your_server_ip:15672,用默认账号 guest/guest 登录即可。
步骤2:安装Node.js和npm
如果机器上还没装 Node.js 环境,用下面这条命令一步到位:
sudo apt update
sudo apt install nodejs npm
步骤3:创建Node.js项目并安装依赖
新建一个项目目录,初始化 package.json,然后装上 RabbitMQ 的官方 Node.js 客户端库 amqplib:
mkdir my-rabbitmq-project
cd my-rabbitmq-project
npm init -y
npm install amqplib
到这里,环境准备工作就全部就绪了。接下来写代码才是重头戏。
步骤4:编写生产者代码(发送消息)
创建一个 index.js 文件,先把 RabbitMQ 的连接建好,声明一个叫 hello 的队列,然后往里面塞一条消息。注意这里用了 durable: false,表示队列不持久化——开发阶段图省事,生产环境记得按需调整。
const amqp = require('amqplib');
async function main() {
try {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
const queue = 'hello';
await channel.assertQueue(queue, { durable: false });
const message = 'Hello World!';
channel.sendToQueue(queue, Buffer.from(message));
console.log(` [x] Sent ${message}`);
setTimeout(() => {
channel.close();
connection.close();
}, 500);
} catch (error) {
console.error(error);
}
}
main();
步骤5:运行生产者
在终端里执行 node index.js,如果看到控制台输出 Sent Hello World!,说明消息已经成功投递到 RabbitMQ 的 hello 队列里了。
步骤6:编写消费者代码(接收消息)
光发不收肯定不行。再创建一个 receiver.js,连接到同一个队列,注册一个消费回调,每次收到消息就打印出来,并手动确认(channel.ack(msg)),确保消息不会丢失。
const amqp = require('amqplib');
async function main() {
try {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
const queue = 'hello';
await channel.assertQueue(queue, { durable: false });
channel.consume(queue, (msg) => {
console.log(` [x] Received ${msg.content.toString()}`);
channel.ack(msg);
});
} catch (error) {
console.error(error);
}
}
main();
步骤7:运行消费者
新开一个终端窗口,执行 node receiver.js,你会看到 Received Hello World! 出现在屏幕上。至此,一个最基本的消息队列生产者-消费者模型就跑通了。
当然,这只是一个入门示例。实际项目中可能需要处理连接重试、消息持久化、交换器绑定、多队列路由等更复杂的逻辑。不过掌握了这个基础链路,往后拓展也就有了明确的入手点。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















