# @confluentinc/kafka-javascript 中文文档

规范地址：https://npmcn.com/package/%40confluentinc/kafka-javascript/

版本：1\.11\.0
npm 元数据更新时间：2026-10-07T18:47:01.343Z
中文译文更新时间：2026-11-10T15:20:23.862Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40confluentinc/kafka-javascript
原文对照：https://npmcn.com/package/%40confluentinc/kafka-javascript/?lang=original
项目主页：https://github.com/confluentinc/confluent-kafka-javascript#readme
源码仓库：https://github.com/confluentinc/confluent-kafka-javascript

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：14.7 MB，646 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：5 个
- 首次发布：2024-02-16T12:37:44.551Z
- 最新版本发布：2026-10-07T18:47:01.100Z
- 近 30 天下载量：4419132（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：61（近 12 个月 21 个）

## 中文简介

Librdkafka 的节点装订

## 安装

```sh
npm install @confluentinc/kafka-javascript
```

也可以使用：`pnpm add @confluentinc/kafka-javascript`、`yarn add @confluentinc/kafka-javascript`、`bun add @confluentinc/kafka-javascript`

## README

# Confluent 用于 Apache Kafka 的 JavaScript 客户端

**光滑-kafka-javascript** 是 Conluent 的 JavaScript 客户端,用于 [阿帕奇·卡夫卡](http://kafka.apache.org/) 编辑 [连接平台](https://www.confluent.io/product/compare/)。目的是提供一个基于 JavaScript 客户端的高效、可靠和易于使用 [节点-rdkafka](https://github.com/Blizzard/node-rdkafka) 但仍然与 [卡夫卡·贾斯](https://github.com/tulios/kafkajs) 为用户提供灵活性并简化其他客户的迁移.

特征 :

-   **业绩好** -相容-kafka-javascript是一个轻量级包装器周围 [利布尔德卡夫卡](https://github.com/confluentinc/librdkafka)一个精细的C 客户端.
    
-   **可靠性** - 写阿帕奇·卡夫卡时有很多细节需要了解 客户端。 我们让他们在一个地方(Librdkafka) 利用这项工作 我们所有的客户.
    
-   **支助** - 商业支助由下列人员提供: [调和](https://confluent.io/)。 。 。 .
    
-   **未来证明** - 团结,由 卡夫卡的创造者们正在建设 [流线平台](https://www.confluent.io/product/) 以Apache Kafka为核心。 客户的功能对我们来说是重中之重 与核心 Apache Kafka 及其组件同步 [连接平台](https://www.confluent.io/product/)。 。 。 .
    

这个库利用两个受欢迎的Apache Kafka JavaScript客户端的工作和概念: [节点-rdkafka](https://github.com/Blizzard/node-rdkafka) 财务报告和审定财务报表 [卡夫卡·贾斯](https://github.com/tulios/kafkajs)。核心主要基于节点-rdkafka库,它使用我们自己的 [利布尔德卡夫卡](https://github.com/confluentinc/librdkafka) 用于核心客户端功能的库。 然而,我们利用一个被打通的API和一个更平庸的接口,类似于KafkaJS中的接口,使得开发者很容易根据他们喜欢的模式和接口来迁移和采用这个客户端. 我们很高兴能够利用这些图书馆的许多作者的出色工作!

用于 **Schema 书记官处**,使用 [@ conflontinc/ schemaregistry (中文(简体) )](https://www.npmjs.com/package/@confluentinc/schemaregistry) 兼容此库的库。 简单的登记办法,见 [页:1](https://github.com/confluentinc/confluent-kafka-javascript/blob/master/examples/kafkajs/sr.js)。 。 。 .

## 所需资源

支持以下配置:

-   Linux(x64和arm64) - 我们支持基于musl和glibc的分布:

| 分发 | 支持的节点版本 |
| --- | --- |
| 德比安公牛/乌邦图 20.04 | 18、20、21、22、23、24 |
| 德比活书虫/Ubuntu 22.04 | 18、20、21、22、23、24 |
| 阿尔卑斯 Linux 3.20+ | 18、20、21、22、23、24 |
| AlmaLinux 9/Rocky Linux 9/CentOS 第9流 | 18、20、21、22、23、24 |

其它的发售可能会给一个现代版本的gcc/glibc工作,但我们不会用它们测试预建的二进制.

-   Linux (s390x/IBM Z)-基于glibc和musl的发售,节点版本为18,20,21,22,23和24. 预建的二进制在Ubuntu 20.04, 22.04, 24.04和26.04, Debian Trixie, Alpine Linux, 和 AlmaLinux 9/ Rocky Linux 9/ CentOS Stream 9. 上进行测试.
-   macOS - arm64/m1. 马克OS (英特尔)得到最好的支持. 节点版本18,20,21,22,23和24得到支持.
-   Windows - x64 (英语). 节点版本18,20,21,22,23和24得到支持.

> \[尖叫声\] 预建的二进制支持将在节点版本或OS的EOL后被放弃.

在其中任何一个平台上安装都意味着无缝,不需要任何C/C++编译.

```bash
npm install @confluentinc/kafka-javascript
```

如果您的系统配置不在所支持的系统之内, 请检查详细信息 [安装指令](https://npmcn.com/package/%40confluentinc/kafka-javascript/INTRODUCTION.md#Installation-Instructions) 更多信息.

Yarn和pnpm的支持是实验性的.

# 开始

下面是使用被打包的API的简单产品示例.

生产申请应当与Schema Registration进行序列化. 生成纯字符串 价值观导致数据质量问题、消费者破裂和数据无法治理。 这个 示例 [@ conflontinc/ schemaregistry (中文(简体) )](https://www.npmjs.com/package/@confluentinc/schemaregistry) 软件包,该软件包单独安装.

替换每个 `<fill>` 与自己的价值。 这个例子涉及两个终点—— a Kafka集群和Schema登记簿——在相通云上,各有自己的 API密钥和秘密.

```javascript
const { Kafka } = require('@confluentinc/kafka-javascript').KafkaJS;
const { kafkaJsonSerializerBuilder } = require('@confluentinc/schemaregistry');

async function producerStart() {
    // The producer builds the serializer while it connects and applies it to
    // every message value. autoRegisterSchemas registers the schema on first
    // produce. Use useLatestVersion instead when the schema is already registered.
    const valueSerializerBuilder = kafkaJsonSerializerBuilder()
        .setClientConfig({
            baseURLs: ['<fill>'],
            basicAuthCredentials: {
                credentialsSource: 'USER_INFO',
                // Schema Registry API key and secret, as '<key>:<secret>'. These
                // are a separate credential from the Kafka API key used below.
                userInfo: '<fill>:<fill>',
            },
        })
        .setJsonSerializerConfig({ autoRegisterSchemas: true });

    const producer = new Kafka().producer({
        'bootstrap.servers': '<fill>',
        'security.protocol': 'SASL_SSL',
        'sasl.mechanisms': 'PLAIN',
        'sasl.username': '<fill>',
        'sasl.password': '<fill>',
        'js.value.serializer.builder': valueSerializerBuilder,
    });

    await producer.connect();
    console.log("Connected successfully");

    const user = { name: 'Confluent', favoriteNumber: 42 };
    await producer.send({
        topic: 'test-topic',
        messages: [
            { value: user, key: 'user1' },
        ],
    });

    await producer.disconnect();
    console.log("Disconnected successfully");
}

producerStart();
```

Schema 登记处的一体化 `js.*.serializer.builder` 财务报告和审定财务报表 `js.*.deserializer.builder` 财产)和 `clusterId()` 是实验性的,未来释放可能会发生变化.

Avro的例子,它也消耗和消毒,见 [页:1](https://npmcn.com/package/%40confluentinc/kafka-javascript/examples/kafkajs/sr.js)。 。 。 .

这个库提供的API有两个变体. 混合式API和回调式API.

1.  如果你重新开始,你应该使用 [混合 API](https://npmcn.com/package/%40confluentinc/kafka-javascript/INTRODUCTION.md#promisified-api)。 。 。 .
2.  如果你正在迁徙 从 `kafkajs`,可以使用 [移徙指南](https://npmcn.com/package/%40confluentinc/kafka-javascript/MIGRATION.md#kafkajs) 尽快开始.
3.  如果你正在迁徙 从 `node-rdkafka`,可以使用 [移徙指南](https://npmcn.com/package/%40confluentinc/kafka-javascript/MIGRATION.md#node-rdkafka)。 。 。 .

可在 [导言](https://npmcn.com/package/%40confluentinc/kafka-javascript/INTRODUCTION.md)。 。 。 .

## 捐款

错误报告和反馈以"Github Issues"的形式获得赞赏. 关于捐款准则,请参见: [捐款额](https://npmcn.com/package/%40confluentinc/kafka-javascript/CONTRIBUTING.md)

## Librdkafka 版本 翻译

| 光滑-kafka-javascript | 利布尔德卡夫卡 |
| --- | --- |
| 1.0.0 (单位:千美元) | 2.6.1 国家 |
| 1.2.0 (中文(简体) ) | 2.8.0 (中文(简体) ) |
| 1.3.0 (单位:千美元) | 2.1.0 国家 |
| 1.3.1 国家 | 2.1.0 国家 |
| 1.3.2 | 2.10.1 国家 |
| 1.4.0 (中文(简体) ) | 2.11.0. 国家 |
| 1.4.1 国家 | 2.1.1.1 国家 |
| 1.5.0 (中文(简体) ) | 2.1.1.1 国家 |
| 1.6.0 (简体中文) | 2.1.20. 国家 |
| 1.7.0 (单位:千美元) | 2.12.1 |
| 1.8.0 国家 | 2.13.0 (韩语) |
| 1.8.2 国家 | 2.1.3.2 |
| 1.9.0 导弹 | 2.14.0 (中文(简体) ) |
| 1.9.1 国家 | 2.1.4.2 |
| 1.1.0 (中文(简体) ) | 2.1.5 |
| 1.10.1 国家 | 2.15.1 联合国 |
| 1.11.0 国家 | 2.1.6 |

如果使用预建的二进制,这种映射是适用的. 否则,您可以用以下命令检查librdkafka版本:

```bash
node -e 'console.log(require("@confluentinc/kafka-javascript").librdkafkaVersion)'
```

## 常见问题

### @confluentinc/kafka-javascript 是什么？

Librdkafka 的节点装订

### 如何安装 @confluentinc/kafka-javascript？

在项目目录运行 npm install @confluentinc/kafka-javascript，或使用 pnpm add / yarn add / bun add。

### @confluentinc/kafka-javascript 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @confluentinc/kafka-javascript 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @confluentinc/kafka-javascript 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @confluentinc/kafka-javascript 可以商用吗？

@confluentinc/kafka-javascript 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @confluentinc/kafka-javascript 的下载量有多少？

根据 npm 官方下载统计，@confluentinc/kafka-javascript 在 2026/10/11 – 2026/11/09 这 30 天内被下载 4,419,132 次，日均约 147,304 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @confluentinc/kafka-javascript 还在维护吗？

最新版本 1\.11\.0 发布于 2026/10/08（1 个月前）；至今共发布 61 个版本，其中过去 12 个月发布了 21 个；首次发布于 2024/02/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

