Kafka:使用“ SASL_PLAINTEXT”或“ PLAINTEXT”协议时的代理传输失败

时间:2019-10-01 13:31:34

标签: apache-kafka confluent-kafka librdkafka

我正在尝试使用“ SASL_PLAINTEXT” “ PLAINTEXT” 连接融合的Kafka经纪人,但出现此错误经纪人运输失败 。但是,它与“ SASL_SSL” 协议可以正常工作,但不能与其他任何安全协议一起工作。

这是我的代码。

const consumer = new Kafka.KafkaConsumer({
    'group.id':'gsuite_consumer',
    'metadata.broker.list': *******,
    'sasl.mechanisms': 'PLAIN',
    'sasl.username': *********,
    'sasl.password': ******,
    'security.protocol': 'PLAINTEXT'
}, {});

// Connect the consumer.
consumer.connect({timeout: "1000ms"}, (err) => {
    if (err) {
        console.log(`Error connecting to Kafka broker: ${err}`);
        process.exit(-1);
    }

    console.log("Connected to Kafka broker");
});

知道我在做什么错吗?在这里与经纪人联系。我也已将此代码部署在Heroku服务器上,并且无法正常工作

1 个答案:

答案 0 :(得分:1)

安全协议确定如何建立从客户端到代理的连接。每个(PLAINTEXTSASL_PLAINTEXTSASL_SSL)的工作方式都不同,端口上只有其中一个可用。

例如,如果您的代理使用SASL_SSL侦听9093,则需要使用此确切协议在此端口上进行连接。尝试其他安全协议会失败。

看看您的代理的advertised.listeners配置,以确定它们公开的端口/协议组合。