面試題百日百刷-kafka篇(三)

来源:https://www.cnblogs.com/demosoftware/archive/2023/04/13/17316590.html
-Advertisement-
Play Games

鎖屏面試題百日百刷,每個工作日堅持更新面試題。請看到最後就能獲取你想要的,接下來的是今日的面試題: 1.如何保證Kafka的消息有序 Kafka對於消息的重覆、丟失、錯誤以及順序沒有嚴格的要求。 Kafka只能保證一個partition中的消息被某個consumer消費時是順序的,事實上,從Topi ...


鎖屏面試題百日百刷,每個工作日堅持更新面試題。請看到最後就能獲取你想要的,接下來的是今日的面試題:

1.如何保證Kafka的消息有序

Kafka對於消息的重覆、丟失、錯誤以及順序沒有嚴格的要求。

Kafka只能保證一個partition中的消息被某個consumer消費時是順序的,事實上,從Topic角度來說,當有多個partition時,消息仍然不是全局有序的。

2.kafka數據丟失問題,及如何保證

1)數據丟失:

acks=1的時候(只保證寫入leader成功),如果剛好leader掛了。數據會丟失。

acks=0的時候,使用非同步模式的時候,該模式下kafka無法保證消息,有可能會丟。

2)brocker如何保證不丟失:

acks=all : 所有副本都寫入成功並確認。

retries = 一個合理值。

min.insync.replicas=2 消息至少要被寫入到這麼多副本才算成功。

unclean.leader.election.enable=false 關閉unclean leader選舉,即不允許非ISR中的副本被選舉為leader,以避免數據丟失。

3)Consumer如何保證不丟失

如果在消息處理完成前就提交了offset,那麼就有可能造成數據的丟失。

enable.auto.commit=false 關閉自動提交offset

處理完數據之後手動提交。

3.kafka的balance是怎麼做的

官方原文

Producers publish data to the topics of their choice. The producer is able to choose which message

to assign to which partition within the topic. This can be done in a round-robin fashion simply to

balance load or it can be done according to some semantic partition function (say based on some

key in the message). More on the use of partitioning in a second. 翻譯:

生產者將數據發佈到他們選擇的主題。生產者可以選擇在主題中分配哪個分區的消息。這可以通過迴圈的方式來完成,只是為了平衡負載,或者可以根據一些語義分區功能(比如消息中的一些鍵)來完成。更多關於分區在一秒鐘內的使用。

4.kafka的消費者方式

consumer採用pull(拉)模式從broker中讀取數據。

push(推)模式很難適應消費速率不同的消費者,因為消息發送速率是由broker決定的。它的目標是儘可能以最快速度傳遞消息,但是這樣很容易造成consumer來不及處理消息,典型的表現就是拒絕服務以及網路擁塞。

而pull模式則可以根據consumer的消費能力以適當的速率消費消息。

對於Kafka而言,pull模式更合適,它可簡化broker的設計,consumer可自主控制消費消息的速率,同時consumer可以自己控制消費方式——即可批量消費也可逐條消費,同時還能選擇不同的提交方式從而實現不同的傳輸語義。

pull模式不足之處是,如果kafka沒有數據,消費者可能會陷入迴圈中,一直等待數據到達。為了避免這種情況,我們在我們的拉請求中有參數,允許消費者請求在等待數據到達的“長輪詢”中進行阻塞。

全部內容在git上,瞭解更多請點我頭像或到我的主頁去獲得,謝謝


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 HttpClient 是 .NET Framework、.NET Core 或 .NET 5以上版本中的一個類,用於向 Web API 發送 HTTP 請求並接收響應。它提供了一些簡單易用的方法,如 GET、POST、PUT 和 DELETE,可以很容易地構造和發送 HTTP 請求,並處理響應 ...
  • 1、下載redis源碼包,併進行解壓縮操作 https://download.redis.io/releases/ [root@Redis-Ubuntu-1804-p21:~]# wget https://download.redis.io/releases/redis-5.0.14.tar.gz ...
  • 原文: https://www.cnblogs.com/xiao987334176/p/9930517.html 一、介紹Prometheus Prometheus(普羅米修斯)是一套開源的監控&報警&時間序列資料庫的組合,起始是由SoundCloud公司開發的。隨著發展,越來越多公司和組織接受採用 ...
  • 筆記本開啟熱點代理 筆者因為最近在使用rk3588做開發,在編譯opencv的時候需要連網下載一些文件,但是很多時候都以失敗告終,筆者也嘗試過在rk3588上部署clash,但都太過複雜而且耗時,後來嘗試發現可以開啟筆記本的熱點,然後打開筆記本(win10)上的代理,連接的所有設備就都能上網了,今天 ...
  • 哈嘍大家好,我是鹹魚 我相信大家在面試過程中或多或少都會被問到這樣一個問題:你能解釋一下什麼是 socket 嗎 我記得我當初的回答很是淺顯:socket 也叫套接字,用來負責不同主機程式之間的網路通信連接,socket 的表現方式由四元組(ip地址:埠)組成 那麼今天,鹹魚將跟大家打開 sock ...
  • 原標題:【精品博文】MIPI掃盲——D-PHY介紹(一) D-PHY種的PHY是物理層(Physical)的意思,那麼D是什麼意思呢?在MIPI D-PHY的文檔中有提到過,D-PHY的最初版本的設計目標是500Mbits/s,而D是羅馬數字(拉丁文數字)中500 。同理C和M分別是羅馬數字中的10 ...
  • terminal,vi 的使用: 0.進入與使用 用終端進入,相當於windows的cmd. ctrl+alt+T打開終端。 終端命令:ls查看文件夾下的文件 mkdir filename在當前目錄下創造一個文件夾 cd filename 進入某文件夾 . 代表當前目錄 .. 上層目錄 ping i ...
  • 1. 1969年 1.1. 關係模型的創始人E.F. Codd(1923—2003) 1.1.1. 牛津大學數學專業 1.1.2. 一己之力奠定了關係模型的基礎 1.2. 論文《大型資料庫中關係存儲的可推導性、冗餘與一致性》 2. 1970年 2.1. 權威學術雜誌Communications of ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...