【问题标题】:Create Kafka Topics using node-rdkafka AdminClient使用 node-rdkafka AdminClient 创建 Kafka 主题
【发布时间】:2021-06-24 20:05:25
【问题描述】:

我正在尝试使用 node-rdkafka AdminClient 创建 Kafka 主题。但我收到以下错误。我在 Mac OS 中运行它

Error: Local: Timed out

管理员客户端:

const adminClient = Kafka.AdminClient.create({
        'security.protocol':'sasl_ssl',
        'bootstrap.servers': '*****:9092',
      'sasl.username': 'API Key',
      'sasl.password': 'API secret',
'sasl.mechanisms':'PLAIN'

adminClient.createTopic({
            topic: 'testTopic',
            num_partitions: 1,
            replication_factor: 1
          }, function(err) {
            // Done!
            console.log(`response::`+err);
          });

参考项目:https://github.com/Blizzard/node-rdkafka

【问题讨论】:

  • 这是一个常见的错误,当你的引导程序枯萎或你的证书不正确时。您是否能够生产或消费已创建的主题?
  • 看起来像一些 ssl 证书问题。未解决,找到另一个要使用的节点模块,即 kafkaJS。

标签: node.js apache-kafka


【解决方案1】:

我的 mac 也遇到了同样的问题!

解决方案: 打开终端,执行ls /etc/ssl,查看cert.pem文件是否存在。

如果存在,只需在'sasl.mechanisms':'PLAIN'旁边添加以下值

'ssl.ca.location': '/etc/ssl/cert.pem' 您必须传入 cert.pem 文件的位置

您修改后的代码应如下所示

const adminClient = Kafka.AdminClient.create({
    'security.protocol':'sasl_ssl',
    'bootstrap.servers': '*****:9092',
    'sasl.username': 'API Key',
    'sasl.password': 'API secret',
    'sasl.mechanisms':'PLAIN',
    'ssl.ca.location': '/etc/ssl/cert.pem'
 })

希望这对你有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多