ActiveMQ Artemis是否具备类似Classic版的replayWhenNoConsumers功能?
ActiveMQ Artemis 中 replayWhenNoConsumers 功能的说明
- ActiveMQ Classic 里的
replayWhenNoConsumers标记,核心作用是当队列无消费者时将消息回传给 broker 网络上游节点。在 Artemis 中,这个逻辑已经内置到集群连接的默认行为里,无需单独配置该标记。 - Artemis 的集群会自动处理无消费者场景:如果当前队列没有活跃消费者,发送的消息会被路由到集群内其他存在同名称队列且有消费者的节点;若整个集群都无对应消费者,消息会暂存于当前队列,直到有消费者接入。
- 若需要更精细化的控制,可通过调整
cluster-connection的相关参数实现,比如:max-hops:限制消息在集群中转发的最大跳数message-load-balancing:设置负载均衡策略,可选ON_DEMAND(默认)或STRICT
- 另外需要注意,Artemis 的地址路由类型会影响消息转发逻辑,比如
MULTICAST类型地址会将消息发送至所有绑定队列,ANYCAST类型则会优先路由到有消费者的队列,这和 Classic 的行为存在差异,迁移时需做好适配。
内容的提问来源于stack exchange,提问作者user7403308
相关产品推荐
相关产品推荐

