Anypoint MQ消息默认是否持久化?为何无ActiveMQ式持久化选项?
Anypoint MQ 消息持久化/非持久化设置指南
和Apache ActiveMQ的直接选项不同,Anypoint MQ的消息持久化逻辑是结合队列/主题配置与消息属性来实现的,具体操作如下:
1. 基于队列/主题的全局配置
在Anypoint MQ控制台创建或修改队列/主题时,可预设默认的持久化规则:
- 队列:创建时选择「非持久化」类型,或在现有队列的设置页修改;默认创建的队列是持久化类型
- 主题:通过订阅类型控制——临时订阅(非持久订阅)的消息不会被持久化,持久订阅的消息会被保留直到被消费
2. 单条消息的动态控制
如果需要针对单条消息指定持久化行为,可在Publish连接器的Message Attributes中设置deliveryMode属性:
- 设为
PERSISTENT(对应数值2):强制消息持久化 - 设为
NON_PERSISTENT(对应数值1):强制消息非持久化
示例Mule表达式配置:
#[{'deliveryMode': 1}]
部分版本的连接器也支持直接在属性面板选择枚举值完成设置
关键注意点
- 非持久化消息的处理优先级低于持久化消息
- 非持久化消息在Broker重启后会丢失,仅适用于对可靠性要求较低的场景
内容的提问来源于stack exchange,提问作者GettingStarted With123
相关产品推荐
相关产品推荐

