【发布时间】:2018-09-24 15:59:48
【问题描述】:
我正在阅读消息队列,发现消息可以有两种类型:持久性和非持久性。
持久性消息存储在磁盘/数据库中,以便它们在代理重新启动后仍然存在,而非持久性消息存储在内存中,在代理重新启动后不存在。
持久消息传递通常比非持久传递慢。
但我想不出非持久消息的特定用例。
谁能举一个程序员应该使用非持久消息的例子。
【问题讨论】:
标签: queue activemq message-queue
我正在阅读消息队列,发现消息可以有两种类型:持久性和非持久性。
持久性消息存储在磁盘/数据库中,以便它们在代理重新启动后仍然存在,而非持久性消息存储在内存中,在代理重新启动后不存在。
持久消息传递通常比非持久传递慢。
但我想不出非持久消息的特定用例。
谁能举一个程序员应该使用非持久消息的例子。
【问题讨论】:
标签: queue activemq message-queue
一般来说,当您丢失一些消息并不重要时。 例如,铁路信号……信号每隔几秒钟发送一次状态。如果一两个迷路了,还有更多的人来。 或者股票价格显示……如果显示有点更新失败,那也没什么大不了的。这里不谈论交易活动——只是在公共区域或其他地方展示。
【讨论】:
除了可能不需要持久性的特定“业务”应用程序之外,非持久性消息可能比持久性消息更受青睐还有另一个重要原因 - 性能。发送和使用非持久消息几乎总是比使用持久消息的相同操作快得多。在处理持久消息时,代理必须与存储设备(例如本地 HDD、本地 SSD、网络附加存储等)进行交互,这通常比 RAM 慢几个数量级(即非持久消息所在的位置)。
【讨论】: