先處理消費端的丟失數據和重復消費 這倆種情況都是 消息偏移offset的問題導致的,只是場景不同。 offset位移提交一般有倆種方式,自動位移提交和手動位移提交。用enable.auto.commit這個配置屬性去控制 丟失消息一般是自動提交的問題,所以切換成手動位移提交就可以 ...
近段時間學習極客時間李玥老師的后端存儲實戰課時,看到一個很多意思的東西:用kafka存儲點擊流的數據,並重復處理。在以往的使用中,kafka只是一個消息傳輸的載體,消息被消費后就不能再次消費。新知識與印象相沖突,於是就有了本篇文章:kafka數據如何被重復消費。 前期理論了解 首先我先去官網糾正了我對kafka的整體了解。 官網對kafka的描述是:一個分布式流平台。怪自己的學藝不精。 其次,我重 ...
2020-09-13 23:09 0 1055 推薦指數:
先處理消費端的丟失數據和重復消費 這倆種情況都是 消息偏移offset的問題導致的,只是場景不同。 offset位移提交一般有倆種方式,自動位移提交和手動位移提交。用enable.auto.commit這個配置屬性去控制 丟失消息一般是自動提交的問題,所以切換成手動位移提交就可以 ...
Kafka作為當下流行的高並發消息中間件,大量用於數據采集,實時處理等場景,我們在享受他的高並發,高可靠時,還是不得不面對可能存在的問題,最常見的就是丟包,重發問題。 1、丟包問題:消息推送服務,每天早上,手機上各終端都會給用戶推送消息,這時候流量劇增,可能會出現kafka發送數據過快,導致 ...
Kafka重復消費原因 底層根本原因:已經消費了數據,但是offset沒提交。 原因1:強行kill線程,導致消費后的數據,offset沒有提交。 原因2:設置offset為自動提交,關閉kafka時,如果在close之前,調用 consumer.unsubscribe ...
面試官:今天我想問下,你覺得Kafka會丟數據嗎? 候選者:嗯,使用Kafka時,有可能會有以下場景會丟消息 候選者:比如說,我們用Producer發消息至Broker的時候,就有可能會丟消息 候選者:如果你不想丟消息,那在發送消息的時候,需要選擇帶有 callBack的api進行發送 ...
一、重復消費的原因 消息重復消費的根本原因都在於:已經消費了數據,但是offset沒有成功提交。 其中很大一部分原因在於發生了再均衡。 1)消費者宕機、重啟等。導致消息已經消費但是沒有提交offset。 2)消費者使用自動提交offset,但當還沒有提交的時候,有新 ...
場景: kafka先批量拉取消息,完了將拉下來的消息逐條消費,假如此次共拉取40條消息,但在處理第31條時,線程被停掉,就會導致已消費消息offet不會被提交,接下來已經被消費的30條記錄還會被重復消費,這就是kafka重復消費的另一場景; 解決思路: 解決此類重復消費的方式:將能夠唯一標識 ...
重復消費的原因 消息重復消費的根本原因都在於:已經消費了數據,但是offset沒有成功提交。 其中很大一部分原因在於發生了再均衡。 1)消費者宕機、重啟等。導致消息已經消費但是沒有提交offset。 2)消費者使用自動提交offset,但當還沒有提交的時候,有新 ...
Kafka如何保證數據不重復消費,不丟失數據 不重復消費: 1.冪等操作,重復消費不會產生問題 2. dstream.foreachRDD {(rdd, time) = rdd.foreachPartition { partitionIterator => val ...