當下主流的消息系統有RabbitMQ、RocketMQ、ActiveMQ等,而RabbitMQ是基于Erlang開發,無論是并發、延時表現都很好。
RabbitMQ消息可靠性是靠什么實現的?
消息可靠性是RabbitMQ的一大特點,RabbitMQ靠什么實現消息可靠性的呢?其實就
消息持久化是指RabbitMQ將內存中的數據(交換器Exchange、隊列Queue、消息Message)落地到硬盤中存儲,以防止異常情況導致內存中的數據丟失。
RabbitMQ如何實現消息持久化?
RabbitMQ中不同數據持久化方式是不同的,主要有:
1、交換器(Exchange)的持久化
2、隊列(Queue)的持久化
在上面第一步操作中,
3、消息(Message)的持久化
上面兩步操作后,在重啟RabbitMQ后,雖然Exchange和Queue不會丟失,但是Queue里的消息是會丟失的,那如何保證消息持久化不丟失呢?我們設置
消息持久化并不能100%保證數據不丟失
當我們將交換器/隊列/消息都設置了持久化依舊不能100%保證數據不會丟失。這其實很好理解,
消息持久化會帶來性能問題
我們知道消息持久化是將內存中的數據寫入硬盤中,但硬盤的讀寫速度遠不如內存,所以
以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區交流~我是科技領域創作者,十年互聯網從業經驗,我了解更多科技知識!