Skip to content

Latest commit

 

History

History
103 lines (76 loc) · 2.3 KB

README-CN.md

File metadata and controls

103 lines (76 loc) · 2.3 KB

Apache RocketMQ Node.js 客户端

English | 简体中文 | RocketMQ 官网

概述

在开始客户端的部分之前,所需的一些前期工作(或者参照这里):

  1. 准备 Node.js 环境。Node.js 16.19.0 是确保客户端运行的最小版本,Node.js >= 18.17.0 是推荐版本;
  2. 部署 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);
}

Current Progress

Message Type

  • NORMAL
  • FIFO
  • DELAY
  • TRANSACTION

Client Type

  • PRODUCER
  • SIMPLE_CONSUMER
  • PULL_CONSUMER
  • PUSH_CONSUMER