持久傳遞與非持久傳遞之間有何區別?
常見問題 > 持久性問題 > 持久傳遞與非持久傳遞之間有何區別
持久傳遞與非持久傳遞之間有何區別?
ActiveMQ Classic 支援持久傳遞和非持久傳遞。根據 JMS 規範,預設傳遞模式為持久性。持久性標誌在 MessageProducer 上為所有訊息設定,使用 setDeliveryMode。它也可以使用 send 方法的長格式為每個訊息指定。持久性是個別訊息的屬性。
主要區別在於,如果您使用持久傳遞,訊息會保存到磁碟/資料庫,以便它們在 Broker 重新啟動後仍然存在。當使用非持久傳遞時,如果您關閉 Broker,則會遺失所有傳輸中的訊息。
這種差異的影響是,持久訊息傳遞通常比非持久傳遞慢,尤其是在不使用非同步傳送時。