English | 简体中文 | RocketMQ 官网
在开始客户端的部分之前,所需的一些前期工作(或者参照这里):
- 准备 Node.js 环境。Node.js 16.19.0 是确保客户端运行的最小版本,Node.js >= 18.17.0 是推荐版本;
- 部署 namesrv,broker 以及 proxy 组件。
我们使用 npm 作为依赖管理和发布的工具。你可以在 npm 的官方网站了解到关于它的更多信息。 这里是一些在开发阶段你会使用到的 npm 命令:
# 自动安装工程相关的依赖
npm install
# 初始化 grpc 代码
npm run init
# 运行单元测试
npm test
# 安装rocketmq nodejs 客户端
npm i rocketmq-client-nodejs
开启 grpc-js 的调试日志:
GRPC_TRACE=compression GRPC_VERBOSITY=debug GRPC_TRACE=all npm test
执行以下命令:
# 构建包并将包发布到远程 npm 仓库
npm publish
发送消息
import { Producer } from 'rocketmq-client-nodejs';
const producer = new Producer({
endpoints: '127.0.0.1:8081',
});
await producer.startup();
const receipt = await producer.send({
topic: 'TopicTest',
tag: 'nodejs-demo',
body: Buffer.from(JSON.stringify({
hello: 'rocketmq-client-nodejs world 😄',
now: Date(),
})),
});
console.log(receipt);
消费消息
import { SimpleConsumer } from 'rocketmq-client-nodejs';
const simpleConsumer = new SimpleConsumer({
consumerGroup: 'nodejs-demo-group',
endpoints: '127.0.0.1:8081',
subscriptions: new Map().set('TopicTest', 'nodejs-demo'),
});
await simpleConsumer.startup();
const messages = await simpleConsumer.receive(20);
console.log('got %d messages', messages.length);
for (const message of messages) {
console.log(message);
console.log('body=%o', message.body.toString());
await simpleConsumer.ack(message);
}
- NORMAL
- FIFO
- DELAY
- TRANSACTION
- PRODUCER
- SIMPLE_CONSUMER
- PULL_CONSUMER
- PUSH_CONSUMER