1、Kafka 可以脫離 Zookeeper 單獨使用嗎?為什么?
kafka不能脫離zookper單獨使用,因為kafka使用zookper管理和協調kafka的節點服務器。
2、Kafka 有幾種數據保留的策略?
Kafka提供了多種數據保留策略,這些策略用于定義消息在Kafka中的保留時長和存儲空間的管理。以下是Kafka中常見的數據保留策略:
- 時間保留策略(Time-based Retention):
- 根據消息在主題(Topic)中的時間戳來決定消息的保留時長。
- 通過設置主題的
retention.ms
參數(或log.retention.hours
/log.retention.minutes
等),可以指定消息在主題中的最長存儲時間(單位:毫秒)。 - 超過該時間的消息將被自動刪除。
- 大小保留策略(Size-based Retention):
- 根據主題中消息的總大小來決定消息的保留時長。
- 通過設置主題的
retention.bytes
參數,可以指定主題中消息的最大存儲大小(單位:字節)。 - 一旦主題中消息的總大小超過了該閾值,舊的消息將被刪除。
- 日志壓縮(Log Compaction):
- 這不是一個直接的保留策略,但它是Kafka中用于管理舊數據的一種方式。
- 當啟用日志壓縮時,Kafka將只保留每個key的最新值,從而刪除具有相同key的舊消息。
- 這有助于減少存儲空間的使用,并允許長時間保留key-value數據,而不僅僅是消息本身。
- 通過設置
cleanup.policy=compact
來啟用日志壓縮。
在實際應用中,Kafka允許開發人員根據業務需求為每個Topic設置不同的數據保留策略。這意味著一個Topic可以使用時間保留策略,而另一個Topic可以使用大小保留策略或同時結合使用這些策略。此外,Kafka的默認數據保留策略通常根據具體部署和配置有所不同。
需要注意的是,Kafka的數據保留策略是通過Kafka的日志清理器(Log Cleaner)來實現的,該清理器會定期掃描日志并刪除過期的消息或壓縮日志以釋放空間。同時,Kafka的Broker也會監控日志的大小,并在達到配置的閾值時觸發清理操作。
3、Kafka 同時設置了 7 天和 10G 清除數據,到第五天的時候消息達到了 10G,這個時候 kafka 將如何處理??
執行數據清除工作,時間和大小不論哪個滿足條件,都會清空數據。
4、什么情況會導致 kafka 運行變慢?
- CPU性能瓶頸
- 磁盤讀寫瓶頸
- 網絡瓶頸
- Kafka內部配置或管理問題
5、使用 kafka 集群需要注意什么?
集群的數量不是越多越好,最好不要超過 7 個,因為節點越多,消息復制需要的時間就越長,整個群組的吞吐量就越低。
集群數量最好是單數,因為超過一半故障集群就不能用了,設置為單數容錯率更高。?