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

创建Kafka Connect源连接器时遇Moquette认证错误(4)

解决Moquette Broker "Bad user name or password (4)" 错误的实用方案

我之前在类似的版本组合(kafka-connect-cli 1.0.6、Moquette 0.10、JDK 1.8)下碰到过这个认证错误,给你整理几个针对性的排查和解决步骤:

1. 核对MQTT源连接器的认证配置

首先确认mqtt-source.properties里的用户名密码配置是否和Moquette Broker完全匹配,注意大小写敏感,别带多余空格:

# 确保这两个值和Moquette的配置完全一致
mqtt.username=your_mqtt_user
mqtt.password=your_mqtt_pass

如果Moquette默认没开认证,记得把这两行注释掉或者删掉——Moquette 0.10默认是允许匿名连接的,强行填不存在的用户就会触发这个错误。

2. 检查Moquette Broker的认证规则

打开Moquette的config/moquette.conf配置文件,重点看这几项:

  • allow_anonymous:如果设为true,连接器不需要填用户名密码;如果是false,必须保证连接器的用户存在于Moquette的用户列表中;
  • password_file:确认这个路径指向的文件存在,文件格式是每行username:password(Moquette 0.10默认用明文存储),检查你用的用户是否在这个文件里,密码有没有打错;
  • 如果你自定义了认证插件,要确认插件在JDK 1.8下能正常加载,避免用JDK 1.8不支持的加密算法。

3. 验证Kafka Connect的配置加载逻辑

有时候配置文件的格式问题会导致参数没被正确读取:

  • 检查配置文件里的键值对是不是用=正确分隔,有没有多余的引号;
  • 启动连接器时,确认命令里正确指定了配置文件,比如:
java -jar kafka-connect-cli-1.0.6-all.jar create mqtt-source-connector --config mqtt-source.properties

可以加上--debug参数查看详细日志,看看连接器实际发送的用户名密码是不是你配置的那个。

4. 版本兼容性小调整

JDK 1.8.0_161比较旧,可能存在一些加密相关的小Bug,建议升级到JDK 1.8的最新补丁版本(比如1.8.0_391)试试。另外,确认Moquette 0.10的MQTT 3.1.1认证逻辑和kafka-connect-cli 1.0.6的实现是否匹配,这两个版本理论上兼容,但偶尔会有小细节差异。

快速定位问题的临时方法

如果以上都排查完还是有问题,可以先把Moquette的allow_anonymous设为true,关闭认证,看看连接器能不能正常连接。如果能连上,就肯定是认证配置的问题;如果还是连不上,再去排查网络或者其他配置问题。


内容的提问来源于stack exchange,提问作者Mourish Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:29:35