成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試必問 | 聊聊Kafka的消費模型?

開發 架構 Kafka
最近,有些讀者去頭條二面,被面試官問了一個關于Kafka的問題:多個Kafka消費者如何同時消費相同Topic下的相同Partition的數據? 看似一個簡單的問題,竟然把這位讀者問懵了!

[[442172]]

大家好,我是冰河~~

最近,有些讀者去頭條二面,被面試官問了一個關于Kafka的問題:多個Kafka消費者如何同時消費相同Topic下的相同Partition的數據? 看似一個簡單的問題,竟然把這位讀者問懵了!

今天,我們就一起來說說這個面試題,好了,開始今天的主題。

題目分析

首先,要明確面試官的問題:多個Kafka消費者如何同時消費相同Topic下的相同Partition的數據? 這個問題問的已經很明顯了,我們只要回答出如何讓多個Kafka消費者同時消費相同Topic下的相同Partition的數據就可以了。

為了能夠回答好這個問題,我們需要理解Kafka中的一個概念,就是 消費者組(Consumer Group)。消費者組是Kafka實現單播和廣播兩種消息模型的基礎和手段。

對于同一個Topic(主題)來說,每個消費者組都可以拿到這個Topic中的全部數據。消費者組內的所有消費者協調在一起來訂閱并消費Kafka Topic中的所有分區。這里,每個分區只能由同一個消費者組內的一個消費者來消費。

這里,為了更好的理解,我們簡單的畫一張Kafka消費消息的原理圖,如下所示。

在這張圖中,一個主題可以配置幾個分區,生產者發送的消息分發到不同的分區中,消費者接收數據的時候是按照消費者組來接收的,Kafka確保每個分區的消息只能被同一個消費者組中的同一個消費者消費。

如果想要重復消費,那么需要其他的消費者組來消費。Zookeerper中保存每個主題下的每個分區在每個消費者組中消費的offset。

新版kafka把這個offset保存到了一個__consumer_offsert的主題下。 這個__consumer_offsert有50個分區,通過將消費者組的id哈希值%50的值來確定要保存到那一個分區。這樣也是為了考慮到Zookeeper不擅長大量數據讀寫的原因。

所以,如果要一個消費者組用幾個消費者來同時消費Kafka中消息的話,可以使用多線程來讀取消息,一個線程相當于一個消費者實例。當消費者的數量大于分區的數量時,有些消費者線程會讀取不到數據。

擴展知識

這里,我們舉一個例子:假設一個主題 testTopic 被groupA消費了,現在啟動另外一個新的groupB來消費testTopic,默認testTopic-groupB的Offset不是0,而是在Kafka中還沒有建立這樣的一個Offset。

除非當testTopic 主題有數據的時候,groupB會收到該數據,該條數據也是第一條數據,此時,groupB的Offset并不是從0開始的,而是從剛初始化的Offset開始的, 除非顯式的用–from-beginning 來獲取從0開始的數據。

題目解答

多個Kafka消費者要想同時消費相同Topic下的相同Partition的數據,則需要將這些Kafka消費者放到不同的消費者組中。

好了,今天就到這兒吧,我是冰河,我們下期見~~

本文轉載自微信公眾號「冰河技術」,可以通過以下二維碼關注。轉載本文請聯系冰河技術公眾號。

 

責任編輯:武曉燕 來源: 冰河技術
相關推薦

2021-12-09 12:22:28

MyBatis流程面試

2021-12-06 11:03:57

JVM性能調優

2023-06-07 08:08:43

JVM內存模型

2023-02-03 07:24:49

雙親委派模型

2020-07-28 08:59:22

JavahreadLocal面試

2019-03-15 19:41:39

MySQL面試數據庫

2020-11-05 13:12:47

紅黑樹

2024-01-05 14:20:55

MySQL索引優化器

2021-12-13 11:12:41

Spring事務失效

2023-02-06 07:01:51

2020-10-14 09:04:18

Kafka系統通信

2020-09-29 15:24:07

面試數據結構Hashmap

2020-02-18 14:25:51

Java線程池拒絕策略

2023-02-17 08:02:45

@Autowired@Resource

2023-02-01 07:15:16

2020-10-12 18:00:39

JavaAQS代碼

2025-03-04 05:46:05

2021-04-26 17:23:21

JavaCAS原理

2021-09-08 10:42:45

前端面試性能指標

2023-02-15 07:03:41

跨域問題面試安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费一级片 | 一区二区三区免费观看 | 亚洲电影免费 | 精品九九 | www.成人.com| 国产成人免费视频网站高清观看视频 | 国产激情毛片 | 久久久www| 欧美在线视频一区二区 | 国产午夜精品一区二区三区 | 欧美日韩一区二区在线 | 午夜精品久久久 | 亚洲午夜视频在线观看 | 久久99一区二区 | 久久免费视频观看 | 日本不卡免费新一二三区 | 日韩精品久久久久久 | 亚洲精品视频一区 | 99tv| 日韩欧美日韩在线 | 国产一级片一区二区三区 | 久久精品小视频 | 日日夜夜天天 | 国产精品久久久久久婷婷天堂 | 激情五月婷婷 | 国产精品成人免费 | 精品一二区 | 久久蜜桃精品 | 一区二区三区回区在观看免费视频 | 亚洲一区精品视频 | 日韩有码一区 | 久久噜噜噜精品国产亚洲综合 | 免费国产一区二区 | 天天色官网| 国产三级一区二区 | 一区二区三区四区五区在线视频 | 亚洲区一区二区 | 国产午夜在线观看 | 91 在线| 国产成人精品一区二区三区视频 | 日日射影院|