rabbitmq怎么避免消息丟失 rabbitmq是零拷貝技術(shù)嗎?
rabbitmq是零拷貝技術(shù)嗎?Rabbitmq不是零拷貝技術(shù)。rabbitmq是一個(gè)分布式消息隊(duì)列,用來(lái)解耦實(shí)現(xiàn)異步和流量控制。RabbitMQ可以刪除延遲隊(duì)列中的某個(gè)不需要消費(fèi)的消息嗎?想知道如何
rabbitmq是零拷貝技術(shù)嗎?
Rabbitmq不是零拷貝技術(shù)。rabbitmq是一個(gè)分布式消息隊(duì)列,用來(lái)解耦實(shí)現(xiàn)異步和流量控制。
RabbitMQ可以刪除延遲隊(duì)列中的某個(gè)不需要消費(fèi)的消息嗎?
想知道如何通過(guò)業(yè)務(wù)刪除?
高并發(fā)場(chǎng)景下,如何保證生產(chǎn)者投遞到消息中間件的消息不丟失?
1.讓 讓我們來(lái)看看消息的傳遞過(guò)程。消息分三步發(fā)送,如圖所示。
2.發(fā)送方可以通過(guò)這三個(gè)步驟確保向mq發(fā)送消息的可靠性:
第一步send將消息發(fā)送到mq,
在第二步中,mq持久化消息。mq需要保證高可用性,持久化后消息不會(huì)丟失。一般有多個(gè)副本,raft協(xié)議可以用來(lái)保證多個(gè)副本之間的數(shù)據(jù)一致性。
步驟3: mq回復(fù)發(fā)送方,確認(rèn)消息已經(jīng)傳遞。
但是,由于步驟1、步驟2和步驟3可能會(huì)失敗,因此有必要重試發(fā)送請(qǐng)求。如果第一步或第二步失敗,直接再試一次。如果步驟3失敗,可能會(huì)有多條消息,這就需要消費(fèi)者保證消費(fèi)的冪等性。