商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何在Debian上使用Node.js实现消息队列

如何在Debian上使用Node.js实现消息队列

  发布于2026-07-05 阅读(0)

扫一扫,手机访问

在 Debian 上折腾消息队列,Node.js 是个很顺手的搭档。具体选哪个消息队列系统,RabbitMQ、Redis、Kafka 各有各的适用场景。这里以 RabbitMQ 为例,把从安装到跑通一个简单收发流程的完整步骤拆开讲清楚。

如何在Debian上使用Node.js实现消息队列

步骤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! 出现在屏幕上。至此,一个最基本的消息队列生产者-消费者模型就跑通了。

当然,这只是一个入门示例。实际项目中可能需要处理连接重试、消息持久化、交换器绑定、多队列路由等更复杂的逻辑。不过掌握了这个基础链路,往后拓展也就有了明确的入手点。

本文转载于:https://www.yisu.com/ask/88553926.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注