当 Kafka Broker 在配置的 Retention time/bytes 之前用完 space 时会发生什么?

What happens when a Kafka Broker runs out of space before the configured Retention time/bytes?

我知道大多数系统都应该进行监控以确保不会发生这种情况(并且我们应该正确设置保留策略),但我很好奇如果 Kafka Broker 确实发生了会发生什么 运行 out of disk space(例如,如果我们将保留时间设置为 30 天,但 Broker 运行s out disk space 到第 1 天)?

在单个 Broker 场景中,Broker 是否只是停止接收任何新消息并且 return Producer 例外?还是它会删除旧消息以便为新消息创建 space?

在多 Broker 场景中,假设我们有 Broker A(分区的领导者但没有更多磁盘 space)和 Broker B(分区的跟随者并且仍然有磁盘 space) ,领导层会转移到 Broker B 吗?当 space 中的两个经纪人 运行 时会发生什么?它是否也 return Producer 的例外?

假设主数据目录不在单独的卷上,OS 进程本身将开始锁定,因为设备上没有空闲 space。

否则,如果日志目录与 Kafka 隔离,您可以期望任何生产者确认停止工作。不过,我不确定是否向客户返回了特定的错误消息。据我所知,经纪人只是停止响应 Kafka 客户端请求,我们不得不通过 SSH 连接到他们,停止 kafka 服务,并手动清理文件,而不是等待保留策略。不,经纪人不会抢占旧数据以支持新记录