kafka入門(四):消費者

消費者 (Consumer )

消費者 訂閱 Kafka 中的主題 (Topic) ,并 拉取消息。

消費者群組( Consumer Group)

每一個消費者都有一個對應的 消費者群組。
一個群組里的消費者訂閱的是同一個主題,每個消費者接收主題的一部分分區的消息。
每一個分區 (Partition),只能被一個消費組中的一個消費者消費。

伸縮性

往群組里增加消費者是橫向伸縮消費能力的主要方式。
注意:不要讓消費者的數量超過主題分區的數量,多余的消費者只會閑置。

消費者與分區

假設主題T1有4個分區,我們創建了消費者C1,它是群組G1里唯一的消費者,我們用它訂閱主題T1。消費者C1將收到主題T1全部4個分區的消息,如圖4-1所示。
請添加圖片描述
如果往群組G1新增多幾個消費者,直到有4個消費者,那么每個消費者可以分配到一個分區,如圖4-3所示。

請添加圖片描述
如果我們往群組里添加更多的消費者,超過主題的分區數量,那么有一部分消費者就會被閑置,不會接收到任何消息,如圖4-4所示。

請添加圖片描述
可以為每一個需要獲取一個或多個主題全部消息的應用程序創建一個消費者群組,然后往群組里添加消費者來伸縮讀取能力和處理能力,群組里的每個消費者只處理一部分消息。

請添加圖片描述

消費者群組與分區再均衡

分區的所有權從一個消費者轉移到另一個消費者,這樣的行為被稱為再均衡.
再均衡為消費者群組帶來了高可用性和伸縮性.
在再均衡期間,消費者無法讀取消息,造成整個群組一小段時間的不可用。

何時會觸發再均衡

  • 有新的消費者加入消費組
  • 有消費者宕機下線
  • 有消費者主動退出消費組
  • 消費組對應的 組協調器(GroupCoorinator)節點發生變更。
  • 消費組內所訂閱的任一主題或者主題的分區數量發生變化。

組協調器(GroupCoorinator)

GroupCoorinator 是 kafka 服務端中用于管理消費組的組件。

消費者協調器 (ConsumerCoordinator)

負責與 組協調器 進行交互。
組協調器 和 消費者協調器 的職責就是負責執行消費者再均衡的操作。

參考資料:

《深入理解kafka:核心設計與實踐原理》
《Kafka權威指南》

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

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

相關文章

大師學SwiftUI第18章Part2 - 存儲圖片和自定義相機

存儲圖片 在前面的示例中,我們在屏幕上展示了圖片,但也可以將其存儲到文件或數據庫中。另外有時使用相機將照片存儲到設備的相冊薄里會很有用,這樣可供其它應用訪問。UIKit框架提供了如下兩個保存圖片和視頻的函數。 UIImageWriteToSavedPh…

JAVA后端自學技能實操合集

JAVA后端自學技能實操 內容將會持續更新中,有需要添加什么內容可以再評論區留言,大家一起學習FastDFS使用docker安裝FastDFS(linux)集成到springboot項目中 內容將會持續更新中,有需要添加什么內容可以再評論區留言,大家一起學習 FastDFS 組名:文件上傳后所在的 st…

leetcode 100.相同的樹

涉及到遞歸,最好多畫圖理解,希望對你們有幫助 100.相同的樹 題目 給你兩棵二叉樹的根節點 p 和 q ,編寫一個函數來檢驗這兩棵樹是否相同。 如果兩個樹在結構上相同,并且節點具有相同的值,則認為它們是相同的。 題目鏈接…

GPIO的使用--滴答定時器--pir人體紅外傳感器

目錄 一、滴答定時器的使用與原理 1、定義 2、原理 (1)向上計數?編輯 (2)向下計數 (3) 代碼流程 a、配置滴答時鐘喚醒頻率 b、滴答時鐘中斷函數 (4)結果 3、優化-->寄存…

Proxy Hook Trace JSON

Proxy var window {key: "qww",age: 22 } window new Proxy(window, {get(target, p, receiver) {console.log("target: ", target);console.log("p: ", p);// return window[username];/// 這里如果這樣寫. 有遞歸風險的...// return Reflec…

【線性代數與矩陣論】Jordan型矩陣

Jordan型矩陣 2023年11月3日 #algebra 文章目錄 Jordan型矩陣1. 代數重數與幾何重數2. Jordan塊與Jordan標準型2.1 最小多項式與Jordan標準型2.2 兩類重要矩陣 3. 矩陣的Jordan分解3.1 Jordan分解的應用 下鏈 1. 代數重數與幾何重數 在對向量做線性變換時,向量空間…

讀書筆記-《數據結構與算法》-摘要4[插入排序]

插入排序 核心:通過構建有序序列,對于未排序序列,在已排序序列中從后向前掃描(對于單向鏈表則只能從前往后遍歷),找到相應位置并插入。實現上通常使用in-place排序(需用到O(1)的額外空間) 從第一個元素開始,該元素可…

如何主持一場知識競賽搶答賽

知識競賽主持說難不難,說簡單也不簡單,我就從易到難介紹一下。 入門級,題主不用練習太多其他花哨的技巧,只要注意一點,熟悉比賽流程。知識競賽需要給所有選手一個公平流暢的答題環境,所以題主自身必須非常…

干貨!接口中的大事務,該如何進行優化?

作為后端開發的程序員,我們常常會的一些相對比較復雜的邏輯,比如我們需要給前端寫一個調用的接口,這個接口需要進行相對比較復雜的業務邏輯操作,比如會進行,查詢、遠程接口或本地接口調用、更新、插入、計算等一些邏輯…

掌握iText:輕松處理PDF文檔-進階篇

簡體中文寫入 iText本身對簡體中文的支持有限,但可以通過引入額外的字體包來增強其對簡體中文的支持。例如,可以使用iTextAsian.jar這個亞洲字體包,它包含了幾種簡單的亞洲字體,其中包括簡體中文字體。只需要將iTextAsian.jar放到…

springboot 啟動之后報錯:Unsatisfied dependency through field ‘bbbClient’

springboot 啟動之后報錯:UnsatisfiedDepencyException:Error creating bean with name ‘aaaServiceImpl’: Unsatisfied dependency through field ‘bbbClient’。 這兩天一直在進行著日常 debugger 查看代碼。可是發生了一個挺“靈異”的事件。那就是我看的項目…

46. 全排列

46. 全排列 原題鏈接:完成情況:解題思路:參考代碼:_46全排列_構建數組回溯_46全排列_直接構建 錯誤經驗吸取 原題鏈接: 46. 全排列 https://leetcode.cn/problems/permutations/description/ 完成情況:…

codeforces D.In Love

思路 用兩個 m u l t i s e t multiset multiset 分別存 l , r l,r l,r 。你也可以寫平衡樹在 l l l 的 m u l t i s e t multiset multiset 里去查詢是否存在比最小的 r r r 大的 l l l 。 Think Twice, Code Once #include<bits/stdc.h> #define il inline #d…

小模型學習(1)-人臉識別

【寫作背景】因為最近一直在研究大模型&#xff0c;在與客戶進行交流時&#xff0c;如果要將大模型的變革性能力講清楚&#xff0c;就一定要能將AI小模型的一些原理和效果講清楚&#xff0c;進而形成對比。當然這不是一件簡單的事情&#xff0c;一方面大模型分析問題的的本質原…

Mybatis分頁插件PageHelper

PageHelper是什么&#xff1f; 是MyBatis提供的分頁插件&#xff0c;可以支持MySQL、Oracle等六種數據庫。 集成方式如下&#xff1a; 1 引入依賴 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> <dependency><groupId>co…

反射加載SDK完成統一調用

文章目錄 1、需求背景2、接口抽象類具體實現類3、疑問4、存在的問題5、通過反射加載SDK并完成調用5、補充&#xff1a;關于業務網關7、補充&#xff1a;關于SDK的開發 關鍵點&#xff1a; 接口抽象類&#xff08;半抽象半實現&#xff09;具體實現類業務網關反射加載SDK&#…

JAVA如何調用python

以下代碼想通過測試&#xff0c;必須有一個前提&#xff1a;電腦上安裝了Python環境。不太習慣說廢話&#xff0c;直接上代碼了。 以下是用于測試的python代碼&#xff08;mytest.py&#xff09;&#xff1a; # 因為用戶到了參數處理&#xff0c;所以需要引用 import argpars…

Java學習手冊——第五篇數據類型

數據類型&#xff1a;是數據化的基石&#xff0c;如果沒有數據類型怎么表示呢&#xff1f;比如年齡可以用整數&#xff1a;18歲。如果有更好的表示方式大家可以留言喲~ 在舉個例子就是姓名&#xff0c;我們需要用字符串的形式來表示。這就是數據類型的魅力&#xff0c;而又有同…

TS基礎語法

前言&#xff1a; 因為在寫前端的時候&#xff0c;發現很多UI組件的語法都已經開始使用TS語法&#xff0c;不學習TS根本看不到懂&#xff0c;所以簡單的學一下TS語法。為了看UI組件的簡單代碼&#xff0c;不至于一臉懵。 一、安裝node 對于windows來講&#xff0c;node版本高…

電腦出現這些現象,說明你的固態硬盤要壞了

與傳統機械硬盤&#xff08;HDD&#xff09;相比&#xff0c;固態硬盤&#xff08;SSD&#xff09;速度更快、更穩定、功耗更低。但固態硬盤并不是完美無瑕的&#xff0c;由于顆粒寫入機制&#xff0c;可能會在七到十年的預期壽命之前出現故障。所以用戶最好為最終故障做好準備…