更新時(shí)間:2021年10月19日13時(shí)44分 來(lái)源:傳智教育 瀏覽次數(shù):
生產(chǎn)者先從 zookeeper 的 "/brokers/topics/主題名/partitions/分區(qū)名/state"節(jié)點(diǎn)找到該 partition 的leader.
l 生產(chǎn)者在ZK中找到該ID找到對(duì)應(yīng)的broker
l broker進(jìn)程上的leader將消息寫入到本地log中
l follower從leader上拉取消息,寫入到本地log,并向leader發(fā)送ACK
l leader接收到所有的ISR中的Replica的ACK后,并向生產(chǎn)者返回ACK。
Kafka數(shù)據(jù)消費(fèi)流程
有2種消費(fèi)模式:
l kafka采用拉取模型,由消費(fèi)者自己記錄消費(fèi)狀態(tài),每個(gè)消費(fèi)者互相獨(dú)立地順序拉取每個(gè)分區(qū)的消息
l 消費(fèi)者可以按照任意的順序消費(fèi)消息。比如,消費(fèi)者可以重置到舊的偏移量,重新處理之前已經(jīng)消費(fèi)過(guò)的消息;或者直接跳到最近的位置,從當(dāng)前的時(shí)刻開始消費(fèi)。
Kafka消費(fèi)數(shù)據(jù)流程
l 每個(gè)consumer都可以根據(jù)分配策略(默認(rèn)RangeAssignor),獲得要消費(fèi)的分區(qū)
l 獲取到consumer對(duì)應(yīng)的offset(默認(rèn)從ZK中獲取上一次消費(fèi)的offset)
l 找到該分區(qū)的leader,拉取數(shù)據(jù)
l 消費(fèi)者提交offset
猜你喜歡:數(shù)據(jù)庫(kù)技術(shù)發(fā)展簡(jiǎn)史,3分鐘了解數(shù)據(jù)庫(kù)技術(shù)
2021-09-29Kafka基準(zhǔn)測(cè)試怎樣進(jìn)行?
2021-09-29什么是消息隊(duì)列?消息隊(duì)列有哪些應(yīng)用場(chǎng)景?
2021-09-28為什么前端埋點(diǎn)和后端埋點(diǎn)不能分開使用?【數(shù)據(jù)埋點(diǎn)介紹】
2021-09-24什么是Cookie?怎樣設(shè)置和讀取Cookie?
2021-09-14什么是視圖?怎樣查找視圖?
2021-09-14北京校區(qū)