我在尝试使用node-rdkafka npm模块连接到使用Kerberos SASL身份验证的Kafka实例时遇到问题,并且由于缺少文档和示例,因此很难解决该问题。我使用的是here的Alpine设置 提取所有必需的librdkafka和node-rdkafka依赖项并创建映像。我正在尝试使用以下配置对象运行容器,以使node-rdkafka生产者连接到Kafka实例:
'debug': 'all',
'client.id': 'kafka',
'metadata.broker.list': KAFKA_DOMAINS,
'sasl.kerberos.principal': '<id>@<REALM>',
'sasl.kerberos.keytab': '/path/to/<id>.keytab',
'sasl.kerberos.service.name': 'kafka',
'security.protocol': 'sasl_plaintext',
'sasl.kerberos.kinit.cmd': 'kinit -kt /path/to/<id>.keytab <id>@<REALM>',
'dr_cb': true,
'event_cb': true
当我尝试运行容器时,它挂了,然后引发以下错误:
[2019-02-05T17:09:59.637Z] ERROR: kafka/7 on 95c927d11411: broker transport failure (err.code=-195)
Error: Local: Broker transport failure
at Function.createLibrdkafkaError [as create] (/opt/rdkafka/node_modules/node-rdkafka/lib/error.js:261:10)
at /opt/rdkafka/node_modules/node-rdkafka/lib/client.js:339:28
以下是功能部件和libkafkaversion日志语句的输出:
[2019-02-05T17:09:29.519Z] INFO: kafka/7 on 95c927d11411:
[ 'gzip',
'snappy',
'ssl',
'sasl',
'regex',
'lz4',
'sasl_gssapi',
'sasl_plain',
'sasl_scram',
'plugins' ]
[2019-02-05T17:09:29.521Z] INFO: kafka/7 on 95c927d11411: 0.11.5
我无法连接什么?我是否缺少一些环境变量?我知道librdkafka的Java实现涉及传递REALM,KDC_HOST和一些.conf文件(krb5和jaas)。我是否需要设置某种环境变量?我找不到任何示例或解决方案。