訊息佇列如何保證訊息不丟失

2021-10-03 05:37:32 字數 498 閱讀 4371

檢測訊息丟失

布式鏈路追蹤系統

如果是 it 基礎設施比較完善的公司,一般都有分布式鏈路追蹤系統,使用類似的追蹤系統可以很方便地追蹤每一條訊息。

利用訊息佇列的有序性來驗證

producer端,我們給每個發出的訊息附加乙個連續遞增的序號,然後在consumer端來檢查這個序號的連續性,連續則沒有丟失,不連續則丟失,還能知道丟的是哪條訊息。

大多數訊息佇列的客戶端都支援***機制,你可以利用這個***機制,在 producer傳送訊息之前的***中將序號注入到訊息中,在consumer收到訊息的***中檢測序號的連續性,這樣實現的好處是訊息檢測的**不會侵入到你的業務**中,待你的系統穩定後,也方便將這部分檢測的邏輯關閉或者刪除。

也能使用分布式鏈路追蹤系統追蹤。

確保訊息的穩定傳遞

RocketMQ如何保證訊息不丟失(訊息可靠性)

為什麼說rocketmq更適用於業務型的訊息中介軟體,因為它能夠保證訊息不丟失且帶有事務訊息。先來看一張rocketmq集群部署結構 其中name server主要是提供路由資訊,這裡暫時忽略,大致流程為 producer 生產者生產訊息 broker 儲存訊息 consumer 消費訊息 接下來我...

RabbitMQ 如何保證訊息不丟失?

rabbitmq 如何保證訊息不丟失?rabbitmq一般情況很少丟失,但是不能排除意外,為了保證我們自己系統高可用,我們必須作出更好完善措施,保證系統的穩定性。下面來介紹下,如何保證訊息的絕對不丟失的問題,下面分享的絕對乾貨,都是在知名網際網路產品的產線中使用。1.訊息持久化 2.ack確認機制 ...

kafka如何保證訊息不丟失

a 消費端弄丟了資料 關閉自動提交offset,在自己處理完畢之後手動提交offset,這樣就不會丟失資料。b kafka弄丟了資料 一般要求設定4個引數來保證訊息不丟失 給topic設定replication.factor引數 這個值必須大於1,表示要求每個partition必須至少有2個副本。在...