Node.js在Ubuntu上如何进行消息队列处理
在Ubuntu上使用Node.js进行消息队列处理
想在Ubuntu上玩转消息队列?Node.js生态提供了不少选择,比如RabbitMQ、Apache Kafka,还有Redis。今天,咱们就以RabbitMQ为例,手把手带你走一遍从安装到跑通第一个“Hello World”消息的全过程。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

1. 安装RabbitMQ
第一步,得先把RabbitMQ请到你的Ubuntu系统里。打开终端,执行下面这组命令就行:
sudo apt update
sudo apt install rabbitmq-server
安装完成后,别急着下一步,先把服务启动起来:
sudo systemctl start rabbitmq-server
怎么确认它真的在跑呢?检查一下服务状态是最稳妥的办法:
sudo systemctl status rabbitmq-server
2. 安装Node.js和npm
消息队列的“地基”打好了,接下来该准备Node.js环境了。如果你的系统里还没有,用下面这串命令安装Node.js和它的包管理器npm,非常方便:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
3. 创建Node.js项目
环境齐备,是时候创建一个专属的项目目录了。这就像给你的代码安个家:
mkdir my-rabbitmq-project
cd my-rabbitmq-project
进入项目目录后,初始化一个新的Node.js项目。加上-y参数,可以跳过那些交互式问答,快速生成package.json文件:
npm init -y
4. 安装RabbitMQ客户端库
Node.js要和RabbitMQ对话,需要一个“翻译官”,也就是客户端库。在Node.js生态里,amqplib是这个角色的不二之选。安装它只需要一行命令:
npm install amqplib
5. 编写消息生产者代码
现在进入实战环节。我们先来创建消息的“发送方”,也就是生产者。创建一个名为producer.js的文件,把下面的代码放进去:
const amqp = require('amqplib');
async function sendMessage() {
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);
}
}
sendMessage();
这段代码干了啥?简单说,就是连接到本地的RabbitMQ服务,声明一个叫“hello”的队列,然后往里面塞一条“Hello World!”消息。发送成功后,它会在控制台告诉你,然后优雅地关闭连接。
6. 编写消息消费者代码
有发就得有收。接下来创建消息的“接收方”,也就是消费者。再新建一个consumer.js文件,内容如下:
const amqp = require('amqplib');
async function receiveMessage() {
try {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
const queue = 'hello';
await channel.assertQueue(queue, { durable: false });
console.log(` [*] Waiting for messages in ${queue}. To exit press CTRL+C`);
channel.consume(queue, (msg) => {
console.log(` [x] Received ${msg.content.toString()}`);
channel.ack(msg);
});
} catch (error) {
console.error(error);
}
}
receiveMessage();
消费者做的事情正好相反:它同样连接到“hello”队列,然后就开始耐心等待。一旦有消息进来,它就会抓取出来,把内容打印在控制台上,并确认消息已处理。
7. 运行生产者和消费者
最激动人心的时刻到了——让整个流程跑起来。你需要打开两个终端窗口。
在第一个终端里,运行生产者脚本:
node producer.js
很快,你会看到它打印出 [x] Sent Hello World! 的发送成功提示。
紧接着,在第二个终端里,启动消费者脚本:
node consumer.js
如果一切顺利,这个终端窗口会立刻显示出 [x] Received Hello World!。瞧,消息已经从生产者那里,穿越队列,稳稳地送到了消费者手中。
总结
到这里,一个在Ubuntu上使用Node.js和RabbitMQ的基础消息队列处理流程就完整实现了。别看这只是个简单的“Hello World”,它已经包含了连接、通道、队列声明、发送和接收这些核心概念。基于这个骨架,你可以轻松地扩展出更多的生产者和消费者,或者引入更复杂的路由、确认机制和错误处理逻辑,来应对真实的业务场景。消息队列的世界大门,已经向你打开了。
相关攻略
在Ubuntu服务器上部署Node js应用,日志管理往往是决定后期维护效率的关键。一套清晰的日志策略,能让你在排查问题时事半功倍。今天,我们就来聊聊如何系统地优化Node js的日志记录。 1 使用日志库 第一步,也是最重要的一步,是告别原始的console log。成熟的日志库,比如winst
Ubuntu 服务器 Node js 日志配置与管理最佳实践指南 一 日志方案选型与对比 在 Ubuntu 环境中部署 Node js 应用时,选择合适的日志记录方案是确保系统可观测性的关键第一步。开发者通常可以从以下几个层面进行选择: 最基础的方法是直接使用 Node js 内置的 console
Node js 在 Ubuntu 的日志输出方式 一 内置方式与简单场景 最直接的方法是使用 console log 或 console error。这种方式简单直接,输出内容会发送到标准输出(stdout)或标准错误(stderr),非常适合在开发调试阶段快速查看信息。 然而,当您将 Node j
Node js 在 Ubuntu 系统中的日志文件存放位置详解 当您在 Ubuntu 服务器上运行 Node js 应用遇到问题时,定位日志文件是排查故障的第一步。然而,Ubuntu 系统本身并未为 Node js 应用预设一个统一的日志存放位置,具体路径完全取决于您的部署架构和配置方式。本文将为您
编写有效的Ubuntu JS日志策略 在Ubuntu环境下为Ja vaScript应用构建一套清晰的日志策略,绝非简单的代码输出。它更像是为你的应用搭建一套全天候的“健康监测系统”。一套设计得当的日志策略,能让你在问题发生时快速定位,甚至在用户感知之前就发现潜在风险。那么,如何搭建这套系统呢? 1
热门专题
热门推荐
摘要应包含研究背景与目的、研究方法与过程、核心发现与结果、结论与意义四部分,依次简明陈述,突出创新点与关键数据,保持客观、独立、完整。 千万别碰 version 字段。 这可不是让你填项目版本号的地方,它更像一个“潘多拉魔盒”:一旦你写了,就等于向 Composer 宣告“这个包不走寻常路”——没有
Notepad++ 怎么设置点击标签页时自动刷新文件 很多开发者都遇到过这个场景:用外部工具修改了文件,切回Notepad++的标签页,却发现内容还是旧的。这其实不是软件出了问题,而是它的默认行为就是如此。今天,我们就来彻底搞清楚它的刷新逻辑,并找到最可靠的解决方案。 Notepad++ 点击标签页
WebStorm点击外部窗口时自动保存需勾选“Synchronize files on frame activation”,该选项独立于空闲保存,失焦瞬间即触发保存并支持on sa ve格式化,但须启用Mark modified标识以确认生效。 点击外部窗口时自动保存文件 你是不是也遇到过这种情况?
Hyperliquid (HYPE):价格预测与每日回购推动潜在上涨 Hyperliquid 的原生代币 HYPE,最近可是赚足了眼球。强劲的上涨势头,配合着持续不断的每日回购和扎实的技术面结构,正在吸引越来越多投资者的目光。一个绕不开的问题是:它是否已经具备了向加密货币市值前十发起冲击的潜力? 市
如何利用CPUInfo优化系统性能 在Linux系统调优的领域里,硬件信息是决策的基石。一个高效的优化闭环,往往始于对硬件的透彻理解,再辅以“监控—分析—调优”的持续迭代。今天要聊的,就是如何从 proc cpuinfo这个看似简单的文件出发,一步步提升系统的吞吐量、降低延迟,并兼顾能效。这套方法,





