MQ消息隊列冪等性和順序性-創(chuàng)新互聯(lián)

如何保證消息隊列的冪等性

一個數據或者一個請求,重復操作多次,得確保對應的數據是不會改變的。一條數據重復出現(xiàn)兩次,數據庫里就只有一條數據,這就保證了系統(tǒng)的冪等性。

創(chuàng)新互聯(lián)公司長期為成百上千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為邢臺縣企業(yè)提供專業(yè)的網站設計制作、成都做網站,邢臺縣網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發(fā)。

如何保證消息消費的冪等性

向數據庫寫庫,先根據主鍵查一下,如果這數據已經有了,就別插入了,update一下。如果是寫Redis,那沒問題了,反正每次都是set,天然冪等性。

稍微復雜一點,比如生產者發(fā)送每條數據的時候,里面加一個全局唯一的id,類似訂單id之類的東西,然后消費到了之后,先根據這個id去比Redis里查一下,之前消費過嗎?如果沒有消費過,就處理,然后這個id寫Redis。如果消費過了,那就別處理了,保證別重復處理相同的消息即可。

比如基于數據庫的唯一鍵來保證重復數據不會重復插入多條。因為有唯一鍵約束了,重復數據插入只會報錯,不會導致數據庫中出現(xiàn)臟數據。Kafka有個offset的概念,就是每個消息寫進去,都有一個offset,代表消息的序號,然后 consumer 消費了數據之后,每隔一段時間(定時定期),會把自己消費過的消息的 offset提交一下,表示“我已經消費過了,下次要是重啟什么的,就從上次消費到的 offset來繼續(xù)消費”。

有這么個場景。數據 1/2/3 依次進入 Kafka,Kafka 會給這三條數據每條分配一個 offset,
代表這條數據的序號,我們就假設分配的 offset 依次是 152/153/154。消費者從 Kafka 
去消費的時候,也是按照這個順序去消費。假

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

分享題目:MQ消息隊列冪等性和順序性-創(chuàng)新互聯(lián)
分享網址:http://bm7419.com/article38/cecepp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供做網站、品牌網站設計、虛擬主機外貿網站建設、關鍵詞優(yōu)化、響應式網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管