at most once:
最多消費一次 訊息0/1 訊息可能丟失 但是不會重複消費 -->log
解釋:消費者的offset已經提交,但是訊息還在處理,這個時候掛了,再重啟的時候會從上次提交的offset處消費,導致上次在處理的訊息部分丟失。
at least once:
至少消費1次 訊息》=1 消費不可能丟失 但是會重複消費 -->
很多公司都用這個
解釋:消費者已經處理完了,但是offset還沒提交,那麼這個時候消費者掛了,就會導致消費者重複消費訊息處理。但是由於auto.commit.interval.ms設定為乙個較低的時間範圍,會降低這種情況出現的概率。
insert ok insert再做一次
update 掛了
exactly once:
正好1次 訊息 1 不會丟失 也不會重複 但是**維護 、外部儲存維護量大
外部儲存offset zk、hbase、redis
官方支援,有待驗證
kafka 主動消費 Kafka消費者的使用和原理
publicstaticvoidmain string args finally 前兩步和生產者類似,配置引數然後根據引數建立例項,區別在於消費者使用的是反序列化器,以及多了乙個必填引數 group.id,用於指定消費者所屬的消費組。關於消費組的概念在 kafka中的基本概念 中介紹過了,消費組使得...
訊息佇列的消費語義和投遞語義
所謂的消費語義,指的就是如下三種情況 其實類似還有乙個投遞語義 說句實在話,其實還是老問題,只是換了一種問法!ok,開始我們的正文 我們先做如下約定 我們先從投遞語義開始講起,因為要先把這個概念講明白了,才能講消費語義。恰巧,kafka實現了這三種語義,我們以kafka來說明。如何保證訊息最多投遞一...
kafka消費原理
consumer 採用 pull 拉 模式從 broker 中讀取資料。push 推 模式很難適應消費速率不同的消費者,因為訊息傳送速率是由 broker 決定的。它的目標是盡可能以最快速度傳遞訊息,但是這樣很容易造成 consumer 來不及處理訊息,典型的表現就是拒絕服務以及網路擁塞。而 pul...