Kafka消息丟失的場景有哪些

生產者在生產過程中的消息丟失
broker在故障后的消息丟失
消費者在消費過程中的消息丟失
ACK機制
ack3個可選值,分別是10-1
ack=0:生產者在生產過程中的消息丟失
簡單來說就是,producer發送一次就不再發送了,不管是否發送成功。
ack=1broker在故障后的消息丟失
簡單來說就是,producer只要收到一個分區副本成功寫入的通知就認為推送消息成功了。這里有一個地方需要注
意,這個副本必須是leader副本。只有leader副本成功寫入了,producer才會認為消息發送成功。
注意,ack的默認值就是1。這個默認值其實就是吞吐量與可靠性的一個折中方案。生產上我們可以根據實際情況進
行調整,比如如果你要追求高吞吐量,那么就要放棄可靠性。
ack=-1:生產側和存儲側不會丟失數據
簡單來說就是,producer只有收到分區內所有副本的成功寫入的通知才認為推送消息成功了。
Offset機制
kafka消費者的三種消費語義
at-most-once:最多一次,可能丟數據
at-least-once:最少一次,可能重復消費數據
exact-once message:精確一次
Kafkapullpush?以及優劣勢分析
Kafka最初考慮的問題是,customer應該從brokes拉取消息還是brokers將消息推送到consumer,也就是pull
push
Kafka遵循了一種大部分消息系統共同的傳統的設計:producer將消息推送到brokerconsumerbroker拉取消
息。
一些消息系統比如ScribeApache Flume采用了push模式,將消息推送到下游的consumer
這樣做有好處也有壞處:由broker決定消息推送的速率,對于不同消費速率的consumer就不太好處理了。
消息系統都致力于讓consumer以最大的速率最快速的消費消息,但不幸的是,push模式下,當broker推送的速率
遠大于consumer消費的速率時,consumer恐怕就要崩潰了。
最終Kafka還是選取了傳統的pull模式。
Pull模式的另外一個好處是consumer可以自主決定是否批量的從broker拉取數據。
Push模式必須在不知道下游consumer消費能力和消費策略的情況下決定是立即推送每條消息還是緩存之后批量推
送。
如果為了避免consumer崩潰而采用較低的推送速率,將可能導致一次只推送較少的消息而造成浪費。
Pull模式下,consumer就可以根據自己的消費能力去決定這些策略。Pull有個缺點是,如果broker沒有可供消費的消息,將導致consumer不斷在循環中輪詢,直到新消息到達。
為了避免這點,Kafka有個參數可以讓consumer阻塞知道新消息到達(當然也可以阻塞知道消息的數量達到某個特
定的量這樣就可以批量發

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

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

相關文章

盼之代售 231滑塊 csessionid 分析

聲明 本文章中所有內容僅供學習交流使用,不用于其他任何目的,抓包內容、敏感網址、數據接口等均已做脫敏處理,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關! 逆向分析 部分python代碼 url "…

STL關聯式容器解析:map與set詳解

目錄 1. 關聯式容器 2. 鍵值對 3. 樹形結構的關聯式容器 3.1 set 3.1.2 set的使用 3.2 map 3.2.1 map的介紹 3.2.2 map的使用 3.3 multiset 3.3.1 multiset的介紹 3.3.2 multiset的使用 3.4 multimap 3.4.1 multimap的介紹 3.4.2 multimap的使用 4.紅黑樹模擬實現…

貪吃蛇--C++實戰項目(零基礎)

視頻地址:C語言必學項目:貪吃蛇! 貪吃蛇游戲框架 ├── 基礎框架 │ ├── 頭文件引入 │ ├── 常量和宏定義 │ └── 窗口初始化 │ ├── 數據結構系統 │ ├── Pos結構體(位置和顏色) │ ├── Snake結構體(蛇的屬性) │ ├──…

unity資源領取反作弊工具加密器

https://assetstore.unity.com/packages/tools/utilities/anti-cheat-pro-2025-3006260元購碼GUARDINGPEARSOFTWARE

FPGA設計中的信號完整性量化與優化:探索高速數字系統的關鍵路徑

在高速FPGA設計中,信號完整性(Signal Integrity, SI)已成為確保系統穩定、可靠運行的核心要素之一。隨著數據傳輸速率的不斷提升和電路規模的日益復雜,信號在傳輸過程中受到的干擾和畸變問題日益凸顯。因此,如何有效量…

`strncasecmp` 字符串比較函數

1) 函數的概念與用途 strncasecmp 是 C 語言中一個非常實用的字符串處理函數,它執行不區分大小寫的字符串比較,但只比較前 n 個字符。這個函數的名字來源于"string n case-compare"(字符串前n個字符不區分大小寫比較)。…

軟件安裝教程(一):Visual Studio Code安裝與配置(Windows)

文章目錄前言一、Visual Studio Code下載二、安裝步驟(Windows)1. GUI安裝2. 命令行安裝三、首次啟動后建議的快速配置(幾分鐘完成)四、常見問題 & 小貼士總結前言 Visual Studio Code(VS Code)是一款…

JavaSSM框架從入門到精通!第三天(MyBatis(二))!

四、Mapper 的動態代理1. 引入 在上面的 CURD 例子中,我們發現:Dao 層的實現類的每一個方法僅僅是通過 SqlSession 對象的相關 API 定位到映射文件 mapper 中的 SQL 語句,真正對數據庫操作的工作實際上是有 Mybatis 框架通過 mapper 中的 SQL…

大模型應用發展與Agent前沿技術趨勢(下)

Agent技術的行業應用與實踐案例 金融領域的Agent應用 金融行業是大模型Agent技術應用最為廣泛的領域之一,涵蓋了風險評估、投資決策、客戶服務等多個方面。在金融風控領域,Agent系統通過結合大模型的語義理解能力和強化學習的決策優化能力,能…

94. 城市間貨物運輸 I, Bellman_ford 算法, Bellman_ford 隊列優化算法

94. 城市間貨物運輸 IBellman_ford 算法Bellman_ford 算法 與 dijkstra算法 相比通用性更強。dijkstra算法解決不了負權邊的問題,因為Dijkstra基于貪心策略,一旦一個節點被從隊列中取出(標記為已解決),它就假定已經找到…

如何使用Prometheus + Grafana + Loki構建一個現代化的云原生監控系統

如何使用 Prometheus + Grafana + Loki 構建一個現代化的云原生監控系統。這套組合被譽為監控領域的“瑞士軍刀”,功能強大且生態極佳。 一、核心組件概念介紹 在搭建之前,深刻理解每個組件的角色和職責至關重要。 1. Prometheus(指標監控與時序數據庫) 角色:系統的“核…

JavaScript Object 操作方法及 API

一、對象創建方式1.字面量創建(最常用)const obj { name: "張三", age: 25 };2.構造函數創建const obj new Object(); obj.name "李四";3.Object.create()(指定原型)const proto { greet: () > "…

pta乙級題目day1

第1天:輸入輸出與運算(6題)1001 害死人不償命的(3n1)猜想(基礎運算)★1006 換個格式輸出整數(格式化輸出)★1016 部分AB(數字提取)★★1046 劃拳(多輸入處理&…

在VSCode中配置.NET項目的tasks.json以實現清理、構建、熱重載和發布等操作

在 VS Code 中配置 .NET 開發任務的完整指南 引言 重要提醒:對于 .NET 開發,強烈推薦使用 Visual Studio,它提供了最完整和穩定的開發體驗。如果你像我一樣"蛋疼"想要嘗試 VS Code,請確保安裝了 C# 開發擴展包&#x…

EmEditor文本編輯器v25.3.0專業版,專業文本編輯,高亮顯示,無限撤消

[軟件名稱]: EmEditor文本編輯器v25.3.0專業版 [軟件大小]: 37.7 MB [軟件大小]: 夸克網盤 | 百度網盤 軟件介紹 EmEditor 是一款功能強大且非常實用的文本編輯器。它啟動速度快,完全可以替代 Windows 自帶的記事本,輕松應對日常文本編輯任務。它對 …

【spring security】權限管理組件執行流程詳解

🎯 權限管理組件執行流程詳解 🏗? 組件架構圖 ┌─────────────────────────────────────────────────────────────┐ │ HTTP請求 …

redis怎么保障雙寫一致性

redis做為緩存,mysql的數據如何與redis進行同步呢?(雙寫一致性)候選人:嗯!就說我最近做的這個項目,里面有xxxx(根據自己的簡歷上寫)的功能,需要讓數據庫與red…

異常值檢測:孤立森林模型(IsolationForest)總結

目錄一、前言二、孤立森林算法2.1 算法簡介2.2 基本原理2.3 算法步驟2.4 異常分數計算方式2.5 python調用方式三、python代碼示例四、小結五、參考學習一、前言 近期在研究構建壽命預測模型,相信很多數據人都懂建模的過程,其實有80%的時間都是在和數據處…

Docker容器化部署實戰:Tomcat與Nginx服務配置指南

部署Tomcat搜索鏡像 使用以下命令搜索可用的Tomcat鏡像:docker search tomcat拉取鏡像 拉取官方Tomcat鏡像:docker pull tomcat創建專用目錄 為Tomcat配置和數據創建專用目錄:mkdir tomcat運行臨時容器并復制配置文件 啟動臨時容器以復制配置…

Go語言實戰案例-使用SQLite實現本地存儲

在開發工具類軟件、桌面應用或者移動端時,我們經常需要一個輕量級數據庫來做 本地存儲。相比 MySQL、Postgres 等服務型數據庫,SQLite 體積小、零配置、單文件存儲,非常適合這種場景。Go 語言通過 GORM SQLite 驅動 就能輕松實現。本文將帶你…