Kafka KRaft模式-删除快照文件时出现拒绝访问异常

问题描述 投票:0回答:1

我在 Windows 环境中以 KRaft 模式(没有 Zookeeper)运行 Kafka 时遇到问题,当 Kafka 尝试删除特定快照文件时,我不断在日志中收到 AccessDeniedException。

以下是日志中的详细错误:

java.nio.file.AccessDeniedException: C:\tmp\kraft-combined-logs\__cluster_metadata-     0\00000000000000943744-0000000001.checkpoint.deleted at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:89)

Kafka version: Using KRaft mode (without ZooKeeper)
OS: Windows 10
log.retention.bytes=1073741824 (1 GB)
log.segment.bytes=1073741824 (1 GB)
log.retention.hours=24
log.retention.check.interval.ms=300000 (5 minutes)

到目前为止我尝试过的: 我尝试将 log.segment.bytes 和 log.retention.bytes 增加到 2 GB 以减少段轮换和删除的频率。这并没有解决问题,并且在保留检查间隔期间仍然出现 AccessDeniedException

我手动停止了 Kafka,删除了导致错误的快照文件,然后重新启动了 Kafka。这暂时解决了该问题,但一段时间后,当 Kafka 再次尝试自动删除文件时,该问题再次出现 我使用 Process Explorer(Windows 工具)检查是否有任何其他进程正在锁定文件,但似乎只有 Kafka 正在访问它们。

Kafka 关闭和重启: 我确保 Kafka 在重新启动以释放任何文件锁之前已完全关闭,但问题仍然存在。

windows apache-kafka kraft
1个回答
0
投票

这是 Windows 上的常见问题,因为 Kafka 在 Windows 环境下没有自动化测试(Confluence Platform 也不支持在 Windows 上运行 Kafka)。

请使用 WSL2 或 Docker,或 Linux 虚拟机在本地运行 Kafka。

© www.soinside.com 2019 - 2024. All rights reserved.