kafka acks為 1時重複資料問題

2021-09-27 03:09:36 字數 377 閱讀 1480

原因:

1、生產者傳送資料到leader。

2、leader寫完資料,isr中的follower也拉取完資料了,但是在返回ack之前,leader宕機了。

3、此時生產者的沒拿到ack(這個請求失敗了),就會認為kafka沒有拿到資料,就會重發資料。

kafka就又會重新儲存這份重發資料,導致資料重複。

解決,新版的kafka加了個冪等性,用引數enable.idempotence=true就可以開啟。

開啟之後會使用poductorid、partition.id、seqnumber(訊息序號,與offset不一樣)這三個做快取,用於判斷重發的資料是否已經被leader以及follower儲存過了,如果儲存過了,就不會再儲存,這樣就避免重複訊息了。

非重複組合排列(含重複數字時,生成不重複組合排列)

sample input 1 2 2 3 sample output 分析資料 這裡和不含重複資料生成全組合排列 是不同的,如果使用原 會出現重複的資料,主要原因是在遞迴的時候,會把那些重複的數字當作不同的數字利用,而平等對待,直接進行遞迴。我們要做的就是把相同的數區分出來,我們這裡可以引入乙個陣列...

Oracle建立主鍵時處理重複資料的程式

v index 為主鍵語句 tablename 為表名 written by wonder modified by create or replace procedure prc delete v index in varchar2,tablename in varchar2 is v sql va...

SQL基礎(四) SQL連線時去掉重複資料

1.重複資料完全一樣,用distinct select distinct from table 根據欄位去重用distinct select distinct 列名稱 from 表名稱 對一列進行操作 select distinct 列名稱1,列名稱2 from 表名稱 對多列進行操作 對多列操作,...