Kafka基礎及常見面試題

1. 用途

1. 流量削峰
2. 流計算

2.?Kafka的核心組件

在Kafka中,Producer、Broker和Consumer是三個關鍵的角色,它們在整個消息傳遞過程中扮演不同的角色和功能:1. **Producer(生產者)**:生產者是消息的發送方,負責將消息發布到Kafka的主題(Topic)中。生產者將消息發送給Kafka集群中的一個或多個Broker,然后由Broker將消息持久化并進行分發。生產者可以根據業務需求配置消息的發送策略,例如同步發送、異步發送等。2. **Broker(代理服務器)**:Broker是Kafka集群中的中間服務器,負責接收、存儲和分發消息。每個Broker都有自己的存儲空間,將消息以分區(Partition)的方式存儲在本地磁盤上。Broker負責管理主題的元數據、分區的分布和復制,以及處理生產者和消費者的請求。多個Broker組成的集群共同構成了一個高可用、分布式的消息傳遞平臺。3. **Consumer(消費者)**:消費者是消息的接收方,負責從Kafka的主題中訂閱消息并進行消費。消費者從Broker中拉取(Pull)消息,可以控制消息的消費進度和速率。消費者可以以不同的消費者組(Consumer Group)身份訂閱同一個主題,這樣可以實現消息的廣播或分組消費。綜合起來,Producer負責將消息發布到Kafka,Broker負責存儲和分發消息,而Consumer負責訂閱和消費消息。這三個角色共同構成了Kafka的核心組件,使得Kafka能夠實現高性能、高可用的消息傳遞和處理。

3. Kafka中Topic的概念

消息類別,Kafka按照topic來分類消息
Topic是對消息的分類,屬于Producer(生產者)和Consumer(消費者)之間的概念Producer會把消息接受到特定的Producer,Broker會管理和分配這些消息。
Consumer會從Consumer特定的區域請求拿到屬于他的topic消息,然后進行消費。
消費完成之后使用offset標記

4.?kafka維護消息狀態的跟蹤方法

Kafka中的Topic會被分為若干分區,每個分區同一時間只能被一個consumer消費
consumer消費之后會把消息offset標記,通過位置偏移來追蹤消費狀態

5.?zookeeper對于kafka的作用是什么

1. Zookeeper在kafka集群中用于節點之間的通信
2. Zookeeper用于管理consumer提交的偏移消息
3. Consumer提交offset消息過程:1. Consumer用自己特有的偏移量把消費后的消息提交給Zookeeper,這個過程異步2. Zookeeper保存偏移后的消息到自己的數據結構里面3. 如果Consumer故障后重啟,可以向Zookeeper查詢上次提交偏移的位置,從而消費后續的消息。避免了數據的重復或丟失

6.?kafka判斷一個節點還活著的有那兩個條件

1. 節點和Zookeeper保持鏈接,Zookeeper會不定時發送心跳的探測
2. 如果follow節點,需要定時同步master的同步消息

7.?kafka?如何不消費重復數據

1. 首先應該從消息源確定,Producer收到發送給Broker的消息都有唯一的Id,保障冪等性。
2. 冪等性保證了即使生產者在發送消息的過程中發生了重試,同一條消息也只會被成功寫入一次。無論生產者發送消息多少次,只要消息內容相同,只有一次會被寫入。

8.?kafka如何實現數據的高效讀取

1. 對不同topic進行分區,分區之后可以被多個Consumer同時并行獲取處理
2. 每個分區都維護了高效的索引
3. 副本機制:每個分區都可以有自己的多個副本,副本允許被讀取
4. Consumer讀取消息后offset是異步給Zookeeper保存,可以繼續執行其他消息處理步驟
5. 零拷貝:kafka的數據傳輸使用零拷貝技術,避免資源浪費零拷貝和傳統拷貝的區別:
傳統是內核態和用戶之間的拷貝,而零拷貝直接在設備和內存空間拷貝
在零拷貝技術中,數據傳輸的過程中數據不再需要從內核緩沖區拷貝到用戶緩沖區,而是直接在內核和設備之間傳輸,避免了中間的拷貝操作。這種方式可以顯著減少CPU的開銷,提高數據傳輸的速度,并降低系統負擔。

9. Kafka的那些設計讓它有如此高的性能

1. 使用分布式消息隊列
2. 使用零拷貝模式
3. 對log文件分區,創建索引

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

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

相關文章

CSS:filter濾鏡 詳解(用法 + 代碼 + 例子 + 效果)

文章目錄 filter 濾鏡blur() 模糊度例子 漸變光暈 brightness() 元素亮度contrast() 對比度grayscale() 元素灰度hue-rorate() 色相opacity() 透明度invert() 反轉顏色saturate() 飽和度 backdrop-filter 蒙版,濾鏡例子 卷軸展開 filter 濾鏡 動圖為效果添加前后對…

界面組件Telerik UI for WinForms R2 2023——擁有VS2022暗黑主題

Telerik UI for WinForms擁有適用Windows Forms的110多個令人驚嘆的UI控件。所有的UI for WinForms控件都具有完整的主題支持,可以輕松地幫助開發人員在桌面和平板電腦應用程序提供一致美觀的下一代用戶體驗。 Telerik UI for WinForms R2 2023于今年6月份發布&…

Blender 混合現實3D模型制作指南【XR】

本教程分步展示如何: 減少 3D 模型的多邊形數量,使其滿足 Microsoft Dynamics 365 Guides 和使用 Microsoft Power Apps 創建的應用程序中包含的混合現實組件的特定性能目標的性能需求。將 3D 模型的多種材質(顏色)組合成可應用于…

?Kubernetes的演變:從etcd到分布式SQL的過渡

DevRel領域專家Denis Magda表示,他偶然發現了一篇解釋如何用PostgreSQL無縫替換etcd的文章。該文章指出,Kine項目作為外部etcd端點,可以將Kubernetes etcd請求轉換為底層關系數據庫的SQL查詢。 受到這種方法的啟發,Magda決定進一步…

軟件測試技術之如何編寫測試用例(6)

四、客戶端兼容性測試 1、平臺測試 市場上有很多不同的操作系統類型,最常見的有Windows、Unix、Macintosh、Linux等。Web應用系統的最終用戶究竟使用哪一種操作系統,取決于用戶系統的配置。這樣,就可能會發生兼容性問題,同一個應…

求Win11系統virtualbox+vagrant安裝MacOS虛擬機

文章目錄 一、背景二、素材2.1、virtualboxvagrant 三、問題3.1、安裝失敗3.2、第二個失敗3.3、網絡說 四、求助 一、背景 題主,主要是窮,沒錢買mac筆記本或相關系統的蘋果產品,哈哈,偶爾也有用過MacOS系統,只是還沒有…

actuator/prometheus使用pushgateway上傳jvm監控數據

場景 準備 prometheus已經部署pushgateway服務&#xff0c;訪問{pushgateway.server:9091}可以看到面板 實現 基于springboot引入支持組件&#xff0c;版本可以 <!--監控檢查--><dependency><groupId>org.springframework.boot</groupId><artifa…

H3C交換機如何配置本地端口鏡像并在PC上使用Wireshake抓包

環境: H3C S6520-26Q-SI version 7.1.070, Release 6326 Win 10 專業版 Wireshake Version 4.0.3 問題描述: H3C交換機如何配置本地端口鏡像并在PC上使用Wireshake抓包 解決方案: 配置交換機本地端口鏡像 1.進入系統視圖,并創建本地鏡像組1 <H3C>system-vie…

高效反編譯luac文件

對于游戲開發人員,有時候希望從一些游戲apk中反編譯出源代碼,進行學習,但是如果你觸碰到法律邊緣,那么你要非常小心。 這篇文章,我針對一些用lua寫客戶端或者服務器的編譯過的luac文件進行反編譯,獲取其源代碼的過程。 這里我不贅述如何反編譯解壓apk包的過程了,只說重點…

【【STM32之GPIO】】

STM32之GPIO 學完了正點原子自帶的視頻課之后感覺仍然一知半解現在更新一下來自其他版本的STM32學習 GPIO 就是 General Purpose Input Output 中文名叫通用輸入輸出口 可配置8種輸入輸出模式 引腳電平 0V~3.3V 部分引腳可容忍5V 輸出模式下可控制端口輸出高低電平&#xff…

ubuntu bind dns服務配置

sudo apt-get install bind9 內網搭建DNS服務器&#xff0c;大多數是解析純內網地址使用。但是偶爾也需要解析外網的地址&#xff0c;所以我們可以配置DNS沒有添加A記錄的URL時&#xff0c;forward到外網DNS服務器或者內網的其他DNS服務器解析。 打開配置文件&#xff1a; sud…

Leetcode 動態規劃

動態規劃&#xff1a; 72. Edit Distance class Solution { public:int minDistance(string word1, string word2) {vector<vector<int>> dp(word1.size() 1, vector<int>(word2.size() 1, 0));for (int i 0; i < word1.size(); i) dp[i][0] i;for …

grafana-zabbix基礎操作篇------導入數據源

文章目錄 一、grafana的安裝1.1、下載地址1.2、下載后導入所安裝機器1.3、yum安裝解決依賴1.4、啟動grafana1.5、查看端口是否啟用&#xff08;端口默認3000&#xff09;1.6、瀏覽器訪問 二、添加zabbix數據源2.1、導入數據源 **下一篇 我們講講構建儀表板的操作** 今天&#x…

如何在工作中利用AIGC提質增效?

引言 人工智能技術快速發展&#xff0c;以 ChatGPT 為代表的新的人工智能語言模型的出現與更迭&#xff0c;引發人們極大的興奮和關注。越來越多的企業開始將 AI 技術應用到生產流程&#xff0c;以提高工作效率和生產力。AIGC&#xff08;AI Generated Content&#xff09;是人…

UE4/UE5 照明構建失敗 “Lightmass crashed”解決“數組索引越界”

在構建全局光照時,經常會出現“Lightmass crashed”的錯誤,導致光照構建失敗。本文將分析這一問題的原因,并給出解決建議。 UE4 版本4.26 報錯如下&#xff1a; <None> Lightmass crashed: Assertion failed: (Index > 0) & (Index < ArrayNum) [File:d:\bu…

在 ubuntu 18.04 上使用源碼升級 OpenSSH_7.6p1到 OpenSSH_9.3p1

1、檢查系統已安裝的當前 SSH 版本 使用命令 ssh -V 查看當前 ssh 版本&#xff0c;輸出如下&#xff1a; OpenSSH_7.6p1 Ubuntu-4ubuntu0.7, OpenSSL 1.0.2n 7 Dec 20172、安裝依賴&#xff0c;依次執行以下命令 sudo apt update sudo apt install build-essential zlib1g…

linux 環境收集core文件步驟

Linux環境下進程發生異常而掛掉&#xff0c;通常很難查找原因&#xff0c;但是一般Linux內核給我們提供的核心文件&#xff0c;記錄了進程在崩潰時候的信息&#xff0c;在C語言類的大型項目中&#xff0c;有助于深入定位。其配置流程如下&#xff1a; 1 查看生成core文件開關是…

BOXTRADE-天啟量化分析平臺 主要功能介紹

BOXTRADE-天啟量化分析平臺 主要功能介紹 potato 數學 web 緣起 月暈而風&#xff0c;礎潤而雨 BOXTRADE-天啟量化 歡迎來到天啟量化&#xff01;這是一個專注于量化分析的網站。我們致力于為用戶提供市場行情技術指標和量化策略分析方面的優質內容和資源。 我們的使命是 做…

第4章 微服務框架主體搭建

mini商城第4章 微服務框架主體搭建 一、課題 框架搭建 二、回顧 1、整體業務功能分析 2、根據業務需求設計表結構及字段 三、目標 1、版本控制器的搭建使用 2、能獨立自主的搭建微服務框架 3、學會考慮一些公共的工具組件 4、網關模塊的應用 四、內容 第1章 版本控…

3D虛擬形象數字替身的制作及應用介紹

“虛擬數字人”這一詞匯已經深入人心。從虛擬偶像、虛擬代言人到虛擬主播、虛擬員工各種類型虛擬數字形象不斷進入公眾視野&#xff0c;由于其與Z世代的獨特親和力以及與新媒體平臺的高度適配性&#xff0c;虛擬數字人在各個領域都在呈崛起之勢&#xff0c;并且有著深度的融合&…