持久性传递和非持久性传递有什么区别?

 常见问题解答 > 持久性问题 > 持久性传递和非持久性传递有什么区别

持久性传递和非持久性传递有什么区别?

ActiveMQ Classic 支持持久性传递和非持久性传递。根据 JMS 规范,默认传递模式为持久性。持久性标志在 MessageProducer 上为所有消息设置,使用 setDeliveryMode 方法。它也可以在每个消息的基础上通过使用 send 方法的长格式来指定。持久性是单个消息的属性。

主要区别在于,如果您使用持久性传递,消息将被持久化到磁盘/数据库,以便它们能够在代理重新启动后存活。当使用非持久性传递时,如果您杀死代理,那么您将丢失所有正在传输的消息。

这种区别的影响是持久性消息传递通常比非持久性传递慢,尤其是在不使用 异步发送 时。

另请参阅

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛徽标和 Apache ActiveMQ 项目徽标是 Apache 软件基金会的商标。版权所有 © 2024,Apache 软件基金会。根据 Apache 许可证 2.0 许可。