如果我要向其发送消息的分区已满磁盘,kafka是否在同一主题中选择了另一个分区?

bd1hkmkf  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(261)

我的主题有3个分区(在3个不同的代理中)。我想将消息发送到特定的分区1(在消息中添加分区id或指定密钥)。假设分区1已满磁盘,是否为该消息选择一个备用分区(在本例中为分区2或3)?

hgb9j2n6

hgb9j2n61#

磁盘耗尽的不是主题,而是整个代理。如果代理用完磁盘,它将自动关闭,您将无法向它发送或接收数据。
由于您特别指向一个分区,现在取决于您的复制因子值是否大于1。如果您已经复制了主题分区,分区负责人将从死代理切换到另一个具有同步分区的代理。
如果您没有1个以上的复制,您的生产者将得到outofmemory错误和它没有产生的数据到备用分区2或3。
为了确保永远不会发生这种情况,如果您设置了 cleanup.policy 删除并设置 retention.bytes 这样,主题/副本的数量就不会超过存储限制。

相关问题