You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Franz-go Kafka客户端SASL认证失败:提示SASL缺失求助

Kafka SASL_PLAINTEXT(SCRAM-SHA-512)认证连接失败解决方案

错误日志

"re-updating metadata due to err: broker closed the connection immediately after a request was issued, which happens when SASL is required but not provided: is SASL missing?"
"read from broker errored, killing connection after 0 successful responses (is SASL missing?)"

当前实现代码

auth := scram.Auth{
        User: "kafka_user",
        Pass: "kafka_pass",
    }
    
    cl, err := kgo.NewClient(
        kgo.SeedBrokers(seeds...),
        kgo.DialTLSConfig(tlsConfig),
        kgo.SASL(auth.AsSha512Mechanism()),
        kgo.ConsumerGroup(consumerGroupId),
        kgo.ConsumeTopics(topics...),
        kgo.WithLogger(kzap.New(logger.GetLogger())),
    )

认证要求

  • SSL: false
  • 安全协议: SASL_PLAINTEXT
  • SASL机制: SCRAM-SHA-512
  • 用户名: <>
  • 密码: <>

核心问题与修复步骤

1. 移除冲突的TLS配置

当前代码中设置了kgo.DialTLSConfig(tlsConfig),但认证要求SSL为false、使用SASL_PLAINTEXT协议,该配置会强制客户端发起TLS连接,与broker配置完全不匹配,直接导致连接被关闭。必须删除该配置项。

2. 显式指定安全协议

虽然kgo库可能根据SASL配置自动推断协议,但显式指定SASL_PLAINTEXT可消除歧义,避免协议匹配错误。添加kgo.SecurityProtocol("SASL_PLAINTEXT")配置项。

3. 验证认证参数准确性

确保scram.Auth中的用户名、密码与Kafka broker端配置的SCRAM用户完全一致,包括大小写、特殊字符等细节。

修复后的代码

auth := scram.Auth{
        User: "your-actual-username", // 替换为真实用户名
        Pass: "your-actual-password", // 替换为真实密码
    }
    
    cl, err := kgo.NewClient(
        kgo.SeedBrokers(seeds...),
        kgo.SecurityProtocol("SASL_PLAINTEXT"),
        kgo.SASL(auth.AsSha512Mechanism()),
        kgo.ConsumerGroup(consumerGroupId),
        kgo.ConsumeTopics(topics...),
        kgo.WithLogger(kzap.New(logger.GetLogger())),
    )

if err != nil {
    log.Fatalf("failed to initialize Kafka client: %v", err)
}

额外排查方向

  • 检查Kafka broker的listener配置,确认已开启SASL_PLAINTEXT端口,且SCRAM-SHA-512机制已启用、用户已正确添加到broker的认证存储中。
  • 排查客户端与broker之间的网络,确保对应端口没有被防火墙、安全组拦截。
  • 查看Kafka broker的系统日志,获取更具体的拒绝原因(如用户不存在、密码校验失败等)。

内容的提问来源于stack exchange,提问作者Ujjwal Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:15:21