原因:
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 表名稱 對多列進行操作 對多列操作,...