JDBC Source Connector无记录及连接器创建失败问题排查
我之前在使用Confluent CLI加载JDBC源连接器时也碰到过类似的静默失败情况,结合你的描述,给你梳理几个最可能的原因和排查方向:
JSON配置格式错误:你提供的配置末尾明显缺少一个闭合的
},完整的合法JSON应该是:{"name":"CRMMASTP_SOURCE", "config":{"connector.class":"io.confluent.connect.jdbc.JdbcSourceConnector", "tasks.max":"1", "topic.prefix":"CRMMASTP_TOPIC", "connection.url":"jdbc:as40..."}}无效的JSON会导致Confluent CLI解析配置时失败,但部分版本的CLI不会给出明确错误提示,只会静默退出,自然不会向Connect集群发送创建请求。你可以用
jq . /kafka/CRM_TEST.json命令快速验证JSON格式是否合法。配置文件路径或权限问题:确认
/kafka/CRM_TEST.json这个路径是否真实存在,且Confluent CLI运行的用户拥有读取该文件的权限。如果文件不存在或权限不足,CLI无法读取配置内容,也不会有任何反馈。可以用ls -l /kafka/CRM_TEST.json和cat /kafka/CRM_TEST.json命令验证。Confluent CLI与Connect集群连接异常:先测试CLI是否能正常连接到Connect集群,执行
./confluent connect list命令,如果返回现有连接器列表,说明连接正常;如果超时或报错,说明CLI没正确关联到Connect,需要检查confluent config里的集群配置,或者Connect服务是否正常运行。JDBC连接器必填项缺失:JdbcSourceConnector有几个核心必填参数,比如
connection.user、connection.password(如果你的AS400数据库需要认证),还有mode(增量同步模式,比如incrementing或timestamp)。如果这些必填项未配置,Connect收到请求后会验证失败,但CLI可能不会把错误信息返回给你。建议先补全这些必填项,再尝试加载。命令名称与配置名称不匹配:你执行的命令是
./confluent load CRM_TEST -d ...,但配置文件里的name字段是CRMMASTP_SOURCE,虽然这不会直接导致静默失败,但可能后续排查时混淆连接器名称,建议保持命令中的加载名称和配置里的name一致,避免不必要的麻烦。
如果以上排查都没问题,建议打开Connect的debug级日志,重新执行加载命令,查看日志里是否有具体的错误信息——有时候CLI没返回的错误,会详细记录在Connect的日志中。
内容的提问来源于stack exchange,提问作者Gokhan

