RabbitMq如何保證消息的可靠性和穩定性
rabbitMq不會百分之百讓我們的消息安全被消費,但是rabbitMq提供了一些機制來保證我們的消息可以被安全的消費。
消息確認
消息者在成功處理消息后可以發送確認(ACK)給rabbitMq,通知消息已經被成功處理。如果RabbitMq沒有收到確認,它可以重新發消息給另外一個消費者。這樣可以防止消息丟失。
持久化
生產者可以將消息標記為持久的, 這樣哪怕我們重啟了也不會丟消息。隊列可也可以標記為持久的。
發布確認
他就是生產者確認消息已經被交換機接受并且已經被消費者接受。
死信
如果消息因為某些原因無法被處理(例如,消息被拒絕并且不在重新投遞),他可以被發送到死信隊列進行進一步處理或者分析。
集群會高可用性
rabbitmq支持集群和鏡像隊列,來提高可靠性和可用性,在集群中可以實現消息和隊列在多個節點間復制,防止單點故障消息丟失。
鏡像隊列
鏡像隊列就是主隊列的副本。他和主從的卻別就是主從式異步同步,他說同步復制