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

Python使用KafkaProducer通过SSL连接时出现FileNotFoundError

Kafka SSL连接文件找不到问题排查(Windows环境)

问题描述

在Windows机器上使用Python的KafkaProducer通过SSL连接Kafka broker,已采用原始字符串+双反斜杠格式配置证书文件(ca.pem、service.cert、service.key)的路径,执行流程为导入依赖库、设置证书路径、实例化SSL协议的KafkaProducer、发送消息到test-topic并执行flush。但明明证书文件存在于指定路径,仍触发错误:

FileNotFoundError: [Errno 2] No such file or directory

原代码

import json
from kafka import KafkaProducer

folderName =r'D:\\BigDataLocalSetup\\KafkaProject\\'

    producer = KafkaProducer(
    bootstrap_servers="kafka-project-abdullahqwerty70125-dee5.e.aivencloud.com:25025",
    security_protocol="SSL",
    ssl_cafile=folderName + "ca.pem",
    ssl_certfile=folderName + "service.cert",
    ssl_keyfile=folderName + "service.key",
    value_serializer=lambda v: json.dumps(v).encode('ascii'),
    key_serializer=lambda v: json.dumps(v).encode('ascii')
)
producer.send("test-topic",
              key={"key": 1},
              value={"message": "hello world"}
             )
producer.flush()

排查与解决方法

  • 验证拼接后的实际路径:在代码里添加打印语句,输出拼接后的证书路径,确认和实际文件路径完全一致,注意检查大小写(部分库可能严格匹配文件名大小写):
    print(folderName + "ca.pem")
    
  • 使用os.path.join自动拼接路径:手动拼接路径容易出错,改用Python内置的路径处理工具,适配Windows系统的路径规则:
    import os
    folderName = r'D:\BigDataLocalSetup\KafkaProject'  # 原始字符串单斜杠在Windows下同样有效
    ssl_cafile = os.path.join(folderName, "ca.pem")
    ssl_certfile = os.path.join(folderName, "service.cert")
    ssl_keyfile = os.path.join(folderName, "service.key")
    
  • 检查文件权限:确认当前运行Python的用户对证书文件有读取权限,右键文件→属性→安全,查看并添加读取权限。
  • 确认文件扩展名真实存在:Windows默认隐藏已知文件扩展名,可能你看到的ca.pem实际是ca.pem.txt,打开文件夹选项→勾选“显示文件扩展名”,核实文件名正确。
  • 修正代码缩进问题:原代码中producer = KafkaProducer(前有多余缩进,会导致语法错误,先修正缩进,避免潜在问题影响调试。

内容的提问来源于stack exchange,提问作者Mariyam Shahzad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:58:23