開發與維運

Kafka面試題——20道Kafka知識點

本篇給大家總結了20道Kafka知識點或者說面試題,持續更新中...
1.kafka的3個關鍵功能?
發佈和訂閱記錄流,類似於消息隊列或企業消息傳遞系統。
以容錯的持久方式存儲記錄流。
處理記錄流。
2.kafka通常用於兩大類應用?
建立實時流數據管道,以可靠地在系統或應用程序之間獲取數據
構建實時流應用程序,以轉換或響應數據流
3.kafka特性?
消息持久化
高吞吐量
擴展性
多客戶端支持
Kafka Streams
安全機制
數據備份
輕量級
消息壓縮
4.kafka的5個核心Api?
Producer API
Consumer API
Streams API
Connector API
Admin API
5.什麼是Broker(代理)?
Kafka集群中,一個kafka實例被稱為一個代理(Broker)節點。
6.什麼是Producer(生產者)?
消息的生產者被稱為Producer。Producer將消息發送到集群指定的主題中存儲,同時也自定義算法決定將消息記錄發送到哪個分區?
7.什麼是Consumer(消費者)?
消息的消費者,從kafka集群中指定的主題讀取消息。
8.什麼是Topic(主題)?
主題,kafka通過不同的主題卻分不同的業務類型的消息記錄。
9.什麼是Partition(分區)?
每一個Topic可以有一個或者多個分區(Partition)。
10.什麼是副本(Replication)?
每個主題在創建時會要求制定它的副本數(默認1)。
11.什麼是記錄(Record)?
實際寫入到kafka集群並且可以被消費者讀取的數據。每條記錄包含一個鍵、值和時間戳。
12.kafka適合哪些場景?
日誌收集、消息系統、活動追蹤、運營指標、流式處理、時間源等。
13.kafka磁盤選用上?
SSD的性能比普通的磁盤好,這個大家都知道,實際中我們用普通磁盤即可。它使用的方式多是順序讀寫操作,一定程度上規避了機械磁盤最大的劣勢,即隨機讀寫操作慢,因此SSD的沒有太大優勢。
14.使用RAID的優勢?
提供冗餘的磁盤存儲空間
提供負載均衡
15.磁盤容量規劃需要考慮到幾個因素?
新增消息數
消息留存時間
平均消息大小
備份數
是否啟用壓縮
16.Broker使用單個?多個文件目錄路徑參數?
log.dirs 多個log.dir 單個
17.一般來說選擇哪個參數配置路徑?好處?
log.dirs好處:提升讀寫性能,多塊物理磁盤同時讀寫高吞吐。故障轉移。一塊磁盤掛了轉移到另一個上。
18.自動創建主題的相關參數是?
auto.create.topics.enable
19.解決kafka消息丟失問題?
不要使用 producer.send(msg),而要使用 producer.send(msg, callback)。
設置 acks = all。
設置 retries 為一個較大的值。
設置 unclean.leader.election.enable = false。
設置 replication.factor >= 3。
設置 min.insync.replicas > 1。
確保 replication.factor > min.insync.replicas。
確保消息消費完成再提交。
20.kafka消息重複問題?
做好冪等。數據庫方面可以(唯一鍵和主鍵)避免重複。在業務上做控制。
本文來源於:奈學開發者社區

Leave a Reply

Your email address will not be published. Required fields are marked *