簡體   English   中英

卡夫卡的消費行為

[英]Kafka consumer behavior

試圖理解kafka文檔中關於消費者如何訪問消息的措辭。

http://kafka.apache.org/documentation.html#intro_consumers http://kafka.apache.org/documentation.html#theconsumer

據我所知,如果有多個具有相同消費者群體消費者的消費者將被傳遞給一個群組中的一個消費者。 我的問題是關於行中提到的交付機制是PUSH還是PULL? 如果它是PUSH什么被認為是交付?(移交語義) 如果它是拉,那么kafka如何確保每個消息只被一個消費者讀取(消費者之間的同步)? 謝謝!

如果它是拉,那么kafka如何確保每個消息只被一個消費者讀取?

這取決於你的意思“卡夫卡”。 經紀人不檢查任何東西,因為它是模型(即,經紀人提供消費者請求的數據而不關心其他任何事情)。

因此,消費者有責任分工。 例如,使用KafkaConsumer ,所有消費者實例通過“組管理協議”相互通信(該協議由代理提供;其他非Java客戶端也提供組管理功能)。 這允許實例決定處理哪個主題分區。 因此,每個分區都分配給一個消費者。 它基本上是一個“契約”:消費者實例相互通信,每個消費者承諾只使用分配給它的分區中的數據。

如果您想了解更多信息,請參閱Kafka wiki: https//cwiki.apache.org/confluence/display/KAFKA/Kafka+0.9+Consumer+Rewrite+Design

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM