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