教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

如何確保MQ消息的可靠性?

更新時間:2023年09月26日18時19分 來源:傳智教育 瀏覽次數:

為了提升性能,默認情況下MQ的數據都是在內存存儲的臨時數據,重啟后就會消失。為了保證數據的可靠性,必須配置數據持久化,包括:

交換機持久化

隊列持久化

消息持久化

我們以控制臺界面為例來說明。

1.交換機持久化

在控制臺的Exchanges頁面,添加交換機時可以配置交換機的Durability參數:

交換機持久化
設置為Durable就是持久化模式,Transient就是臨時模式。

2.隊列持久化

在控制臺的Queues頁面,添加隊列時,同樣可以配置隊列的Durability參數:

對列持久化
除了持久化以外,你可以看到隊列還有很多其它參數。

3.消息持久化

在控制臺發(fā)送消息的時候,可以添加很多參數,而消息的持久化是要配置一個properties:

消息持久化

warning 說明:在開啟持久化機制以后,如果同時還開啟了生產者確認,那么MQ會在消息持久化以后才發(fā)送ACK回執(zhí),進一步確保消息的可靠性。 不過出于性能考慮,為了減少IO次數,發(fā)送到MQ的消息并不是逐條持久化到數據庫的,而是每隔一段時間批量持久化。一般間隔在100毫秒左右,這就會導致ACK有一定的延遲,因此建議生產者確認全部采用異步方式。

0 分享到:
和我們在線交談!