消息队列中非持久性消息的用例

时间:2018-04-14 12:27:39

标签: queue activemq message-queue

我正在阅读有关消息队列的信息,发现这些消息可以分为两种类型:持久性和非持久性。

持久性消息存储在磁盘/数据库中,这样它们将在代理重新启动时继续存在,而非持久性消息存储在内存中,而这些消息在代理重新启动后仍然存在。

持久消息传递通常比非持久消息传递慢。

但我无法想到非持久性消息的特定用例。

当程序员使用非持久性消息时,任何人都可以举例说明。

2 个答案:

答案 0 :(得分:2)

一般来说,如果丢失一些消息并不重要。 例如,铁路信号......信号每隔几秒发送一次状态。如果有一两个人迷路了,还有更多的人会来。 或者股票价格显示......如果显示器无法更新一点,那么这并不是什么大不了的事。不是在谈论交易活动 - 只是在公共区域或其他地方展示。

答案 1 :(得分:0)

除了特定的"业务"可能不需要持久性的应用程序,非持久性消息可能优先于持久性消息 - 性能,这是另一个重要原因。发送和使用非持久性消息几乎总是比使用持久性消息的相同操作快得多。处理持久性消息时,代理必须与存储设备(例如,本地HDD,本地SSD,网络附加存储等)进行交互,这通常比RAM慢几个数量级(即非持久性消息存在的位置)。