【面試篇】Kafka

一、基礎概念類

問題:請簡述 Kafka 是什么,以及它的主要應用場景有哪些?
答案:Kafka 是一個分布式流處理平臺,它以高吞吐量、可持久化、可水平擴展等特性而聞名。其主要應用場景包括:
日志收集:可以收集和聚合來自不同來源的日志數據,方便進行集中存儲和分析。
消息隊列:作為異步消息傳遞系統,解耦生產者和消費者,提高系統的可擴展性和響應性能。
實時流處理:實時處理如金融交易數據、物聯網設備產生的數據等,進行實時分析和決策。
問題:Kafka 中的主題(Topic)、分區(Partition)和副本(Replica)分別是什么含義,它們之間有什么關系?
答案:
主題(Topic):是消息的邏輯分類,生產者發送消息到特定主題,消費者從主題中訂閱消息。
分區(Partition):每個主題可以被劃分為多個分區,分區是物理存儲單元,消息以追加的方式存儲在分區中。分區可以分布在不同的 Broker 上,實現并行處理和水平擴展。
副本(Replica):為了保證數據的可靠性,每個分區可以有多個副本。其中一個副本是領導者(Leader)副本,負責處理讀寫請求,其他副本是追隨者(Follower)副本,它們從領導者副本同步數據。當領導者副本出現故障時,追隨者副本中的一個會被選舉為新的領導者副本。
關系:一個主題包含一個或多個分區,每個分區有零個或多個副本。

生產者與消費者類

問題:Kafka 生產者如何保證消息的可靠性發送?
答案:
設置合適的 acks 參數:acks = 0 時,生產者發送消息后不等待任何確認,速度快但可能丟失消息;acks = 1 時,生產者等待領導者副本確認,若領導者副本確認前崩潰,消息可能丟失;acks = all 時,生產者等待所有同步副本確認,確保消息不會丟失,但性能相對較低。
重試機制:生產者發送消息失敗時,通過配置 retries 參數設置重試次數,避免因網絡等瞬時故障導致消息發送失敗。
冪等性:從 Kafka 0.11.0.0 版本開始,生產者支持冪等性,通過設置 enable.idempotence 為 true,保證即使在重試的情況下,相同消息也只會被成功寫入 Kafka 一次,避免重復消息。
問題:Kafka 消費者如何實現精準一次消費(Exactly Once)?
答案:
從生產者角度:利用生產者的冪等性和事務特性。生產者開啟冪等性(enable.idempotence = true),對于跨分區的事務,通過事務 API(如 initTransactions、beginTransaction、sendOffsetsToTransaction 等方法)確保一批消息要么全部成功寫入 Kafka,要么全部失敗。
從消費者角度:通過設置 enable.auto.commit = false,關閉自動提交消費偏移量。消費者在處理完消息后,手動提交偏移量,并且將偏移量提交操作包含在事務中,確保消息處理和偏移量提交的原子性。這樣當消費者重啟后,不會重復消費已經處理過的消息,從而實現精準一次消費。

集群與架構類

問題:Kafka 集群中 Zookeeper 的作用是什么?
答案:
集群管理:存儲 Kafka 集群的元數據信息,如主題、分區、Broker 等信息,幫助 Kafka 集群中的節點了解整個集群的狀態。
領導者選舉:在 Kafka 集群中,當某個分區的領導者副本出現故障時,Zookeeper 協助選舉出新的領導者副本。它通過臨時節點和 Watch 機制來監測 Broker 和分區的狀態變化,觸發選舉流程。
Broker 注冊:Kafka Broker 在啟動時會在 Zookeeper 中注冊自己,并且定期發送心跳信息保持連接,Zookeeper 根據這些信息來判斷 Broker 的存活狀態。
問題:Kafka 集群是如何實現水平擴展的?
答案:
添加 Broker:在已有的 Kafka 集群中,通過增加新的 Broker 節點來擴展集群的處理能力。新的 Broker 啟動后會向 Zookeeper 注冊自己,集群中的其他節點會感知到新節點的加入。
重新分配分區:使用 Kafka 提供的工具(如 kafka-reassign-partitions.sh),可以將現有主題的分區重新分配到新加入的 Broker 上。通過合理地分配分區,使得集群的負載更加均衡,提高整體的處理能力。例如,對于一個有大量讀寫操作的主題,可以將部分分區遷移到新的 Broker 上,減輕原有 Broker 的壓力。
生產者和消費者的自動感知:生產者和消費者在與 Kafka 集群交互時,能夠自動感知到集群的變化。當新的 Broker 加入或分區重新分配后,生產者可以將消息發送到新的分區,消費者也能從新的分區拉取消息,無需手動修改配置,從而實現無縫的水平擴展。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900040.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解釋回溯算法,如何應用回溯算法解決組合優化問題?

一、回溯算法核心原理 回溯算法本質是暴力窮舉的優化版本,采用"試錯剪枝"策略解決問題。其核心流程如下: ?路徑構建:記錄當前選擇路徑?選擇列表:確定可用候選元素?終止條件:確定遞歸結束時機?剪枝優化…

Vue 學習隨筆系列二十二 —— 表格高度自適應

表格高度自適應 文章目錄 表格高度自適應1、方法一2、方法二 1、方法一 根據頁面元素計算各自占比 <template><div class"main"><div class"query-form" ref"Query"><QueryFormref"QueryForm"query"query&q…

ubuntu22.04.5安裝docker,解決安裝出現的錯誤,解決Docker hello-world沒打印出來

文章目錄 前言一 安裝失敗解決1結合具體報錯分析2 首先懷疑是VPN的問題3 直接百度報錯信息4最終解決問題 二 驗證Docker hello-world沒打印出來總結 前言 先說一下前面的情況&#xff0c;使用的是公司的工作站&#xff0c;登錄公司一個帳號使用的公司網絡&#xff0c;使用網上…

idea插件(自用)

.ignore git排除文件插件&#xff1a;.ignore介紹 Grep console 自定義日志顏色&#xff1a;Grep console介紹 AceJump 光標快速定位&#xff1a;AceJump介紹 Key promoter 提示插件:Key promoter介紹 MetricsReloaded 分析代碼復雜度的插件&#xff1a;MetricsReload…

讓AI再次偉大-MCP-Client開發指南

&#x1f44f;作者簡介&#xff1a;大家好&#xff0c;我是愛吃芝士的土豆倪&#xff0c;24屆校招生Java選手&#xff0c;很高興認識大家&#x1f4d5;系列專欄&#xff1a;Spring原理、JUC原理、Kafka原理、分布式技術原理、數據庫技術、JVM原理、AI應用&#x1f525;如果感覺…

供應鏈管理:計算題 / 倒扣法

一、理解倒扣法 在供應鏈管理中&#xff0c;倒扣法是一種常用的成本計算方法&#xff0c;主要用于確定商品的成本和銷售價格&#xff0c;以確保特定的毛利率。倒扣法的基本原理是在已知售價和期望毛利率的情況下&#xff0c;逆推計算出供貨價或成本價。 二、倒扣法的計算公式…

skynet.start 的作用詳細解析

目錄 skynet.start 的作用詳細解析1. 功能概述2. 基本用法3. 關鍵作用(1) 注冊消息處理函數(2) 啟動事件循環(3) 服務生命周期管理 4. 與其他函數的協作5. 未調用 skynet.start 的后果6. 高級場景&#xff1a;何時不需要 skynet.start7. 總結 skynet.start 的作用詳細解析 在 …

基于yolo11的BGA圖像目標檢測

1.產生圖像數據的分辨率 2.產生圖像的大小 3.產生圖像是黑白或是RGB彩色 灰度圖像&#xff0c;達到識別要求&#xff0c;減少計算量 4.標注數據的精準程度 1.模型標注后&#xff0c;少量標注全部人工校驗&#xff0c;大量數據抽檢&#xff0c;部分人工檢驗 2.明確邊界框貼合…

PADS 9.5【附破解文件+安裝教程】中文激活版下載

第1步 將軟件安裝包下載到電腦本地&#xff0c;使用解壓工具進行解壓打開&#xff08;全程關閉殺毒軟件以及防火墻&#xff0c;避免破解文件被刪除&#xff09; 第2步 鼠標右鍵以管理員身份運行“PADS9.5_mib.exe” 第3步 加載片刻后&#xff0c;彈出如圖界面&#xff0c;點擊N…

電子電氣架構 --- SOC設計流程及其集成開發環境

我是穿拖鞋的漢子&#xff0c;魔都中堅持長期主義的汽車電子工程師。 老規矩&#xff0c;分享一段喜歡的文字&#xff0c;避免自己成為高知識低文化的工程師&#xff1a; 周末洗了一個澡&#xff0c;換了一身衣服&#xff0c;出了門卻不知道去哪兒&#xff0c;不知道去找誰&am…

圖撲 HT 電纜廠 3D 可視化管控系統深度解析

在當今數字化浪潮席卷制造業的大背景下&#xff0c;圖撲軟件&#xff08;Hightopo&#xff09;憑借其自主研發的強大技術&#xff0c;為電纜廠打造了一套先進的 3D 可視化管控系統。該系統基于 HT for Web 技術&#xff0c;為電纜廠的數字化轉型提供了有力支撐。 HT 技術核心架…

【數據結構】鄰接矩陣完全指南:原理、實現與稠密圖優化技巧?

鄰接矩陣 導讀一、圖的存儲結構1.1 分類 二、鄰接矩陣法2.1 鄰接矩陣2.2 鄰接矩陣存儲網 三、鄰接矩陣的存儲結構四、算法評價4.1 時間復雜度4.2 空間復雜度 五、鄰接矩陣的特點5.1 特點1解析5.2 特點2解析5.3 特點3解析5.4 特點4解析5.5 特點5解析5.6 特點6解析 結語 導讀 大…

Docker Registry 清理鏡像最佳實踐

文章目錄 registry-clean1. 簡介2. 功能3. 安裝 docker4. 配置 docker5. 配置域名解析6. 部署 registry7. Registry API 管理8. 批量清理鏡像9. 其他10. 參考registry-clean 1. 簡介 registry-clean 是一個強大而高效的解決方案,旨在簡化您的 Docker 鏡像倉庫管理。通過 reg…

UART雙向通信實現(序列機)

前言 UART&#xff08;通用異步收發傳輸器&#xff09;是一種串行通信協議&#xff0c;用于在電子設備之間進行數據傳輸。RS232是UART協議的一種常見實現標準&#xff0c;廣泛應用于計算機和外圍設備之間的通信。它定義了串行數據的傳輸格式和電氣特性&#xff0c;以確…

機器學習算法分類全景解析:從理論到工業實踐(2025新版)

一、機器學習核心定義與分類框架 1.1 機器學習核心范式 機器學習本質是通過經驗E在特定任務T上提升性能P的算法系統&#xff08;Mitchell定義&#xff09;。其核心能力體現在&#xff1a; 數據驅動決策&#xff1a;通過數據自動發現模式&#xff0c;而非顯式編程&#xff08…

perf?命令詳解

?perf 命令詳解? perf 是 Linux 系統中最強大的 ?性能分析工具?&#xff0c;基于內核的 perf_events 子系統實現&#xff0c;支持硬件性能計數器&#xff08;PMC&#xff09;、軟件事件跟蹤等功能&#xff0c;用于定位 CPU、內存、I/O 等性能瓶頸。以下是其核心用法與實戰…

【大模型基礎_毛玉仁】6.4 生成增強

目錄 6.4 生成增強6.4.1 何時增強1&#xff09;外部觀測法2&#xff09;內部觀測法 6.4.2 何處增強6.4.3 多次增強6.4.4 降本增效1&#xff09;去除冗余文本2&#xff09;復用計算結果 6.4 生成增強 檢索器得到相關信息后&#xff0c;將其傳遞給大語言模型以期增強模型的生成能…

Leetcode 合集 -- 排列問題 | 遞歸

題目1 子集2 思路 代碼 題目2 全排列2 思路 代碼 題目3 排列總和 思路 代碼 題目4 排列總和2 思路 代碼

vue-office 支持預覽多種文件(docx、excel、pdf、pptx)預覽的vue組件庫

官網地址&#xff1a;https://github.com/501351981/vue-office 支持多種文件(docx、excel、pdf、pptx)預覽的vue組件庫&#xff0c;支持vue2/3。也支持非Vue框架的預覽。 1.在線預覽word文件&#xff08;以及本地上傳預覽&#xff09; 1.1&#xff1a;下載組件庫 npm inst…

【trino】trino配置證書https tls/ssl訪問

trini版本470 一、官方文檔 doc 在Security/TLS and HTTPS、Security/PEM files和Security/JKS files下 openssl文檔 二、配置trino 2.1 創建server.cnf文件 [ req ] distinguished_name req_distinguished_name req_extensions v3_req[ req_distinguished_name ] coun…