慕田峪4524236
2022-08-03 10:25:36
我在kafka消息處理中有一個(gè)場景,其中我得到了3種類型的負(fù)載:category_createfolder_createarticle_create為此,我在DB中輸入理想情況下,加載應(yīng)按順序進(jìn)行:category_create -> folder_create -> article_create,因?yàn)槲募A始終屬于某個(gè)類別,文章始終屬于某個(gè)文件夾。對(duì)于folder_create處理文件夾的類別,應(yīng)該已經(jīng)作為kafka消息接收。但是,在某些情況下,folder_create負(fù)載在category_create之前幾毫秒。我可以在彈簧靴中做些什么來等待毫秒,以防folder_create允許category_create處理,然后處理folder_create。嘗試在彈簧靴中使用@Retry和@Recover,但我想這不適合這種情況。
3 回答

開滿天機(jī)
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
消費(fèi)者不能保證訂單,它應(yīng)該由生產(chǎn)者來完成。
我們遇到了類似的情況,我們在數(shù)據(jù)庫中創(chuàng)建了一個(gè)臨時(shí)表來存儲(chǔ)消息,直到我們收到所需的消息。然后處理數(shù)據(jù)庫中的記錄并將其刪除。

大話西游666
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
保證使用者按追加順序使用消息。在你的例子中,你應(yīng)該考慮確保生產(chǎn)者按順序發(fā)送消息。為了實(shí)現(xiàn)這一點(diǎn),最好讓“max.in.flight.requests.per.connection=1”,“acks=all”另一個(gè)是“enable.idempotence=true”。但這些可能會(huì)在吞吐量上咬你。
添加回答
舉報(bào)
0/150
提交
取消