[英]Expiring the messages in Kafka Topic
我們在我們的開發環境中使用 Apache Kafka 執行負載測試。
在我們安裝了 confluent kafka 的 Linux 盒子中,空間有限,因此為了執行負載測試,我們在主題中添加了retention.ms 屬性。
想法是在消息被消費者消費后從主題中刪除。
我努力了
kafka-topics --zookeeper localhost:2181 --alter --topic myTopic --config retention.ms=10000
它不起作用,因此我們重新創建了主題並嘗試了以下選項。
kafka-configs --alter --zookeeper localhost:2181 --entity-type topics --entity-name myTopic -add-config retention.ms=10000
在運行該過程幾個小時后,由於空間限制,代理將關閉。
我可以從主題以及代理的角度嘗試哪些其他選項,以使消息可靠地過期並收回磁盤空間以進行長時間運行的負載測試。
除了時間之外,您還可以根據字節大小定義刪除策略。
主題配置稱為retention.bytes ,在文檔中描述為:
如果我們使用“刪除”保留策略,此配置控制分區(由日志段組成)在我們丟棄舊日志段以釋放空間之前可以增長到的最大大小。 默認情況下沒有大小限制,只有時間限制。 由於此限制是在分區級別強制執行的,因此將其乘以分區數以計算主題保留(以字節為單位)。
您可以將它與retention.ms
一起設置,無論首先達到什么限制(字節或時間),都會觸發清理。
這可能是因為您的日志清理線程可能尚未觸發。
您沒有提供太多關於這些主題積累了多少數據的信息。 但它可能不在 GB 中。
日志清理線程將清理已完成的日志段。 段的默認大小為 1 GB。
如果您期望巨大的負載,請將您的主題配置 segment.bytes 修改為較小的值。
或根據您的要求將配置 segment.ms 修改為 1 分鍾或 10 分鍾。
這應該會創建段,並根據您的日志保留時間,清理線程將清理較舊的已完成段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.