You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ActiveMQ Artemis客户端配置重发策略?

ActiveMQ Artemis JMS客户端重发策略配置方式

ActiveMQ Artemis的JMS客户端没有沿用经典版的RedeliveryPolicy独立类设计,重发相关策略直接通过连接工厂属性、URL参数或Broker端配置来设置,以下是具体实现方式:

1. 客户端代码直接配置(通过ActiveMQConnectionFactory setter)

直接调用连接工厂的对应方法设置重发参数,对应经典版RedeliveryPolicy的核心配置项:

var connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

// 最大重发次数,-1表示无限重发
connectionFactory.setMaxRetryAttempts(5);
// 初始重发延迟(单位:毫秒)
connectionFactory.setRetryInterval(1000);
// 重发延迟倍增因子(开启指数回退)
connectionFactory.setRetryIntervalMultiplier(2.0);
// 重发延迟的上限值(避免延迟过大)
connectionFactory.setMaxRetryInterval(10000);
// 开启碰撞避免(随机调整重发延迟,防止客户端同时重试)
connectionFactory.setUseRetryCollisionAvoidance(true);
// 碰撞避免的延迟调整百分比(范围0-100)
connectionFactory.setRetryCollisionAvoidancePercent(10);

2. 通过连接URL参数配置

将重发参数嵌入连接URL中,适合外部化配置场景:

var connectionFactory = new ActiveMQConnectionFactory(
    "tcp://localhost:61616?maxRetryAttempts=5&retryInterval=1000&retryIntervalMultiplier=2.0&maxRetryInterval=10000&useRetryCollisionAvoidance=true&retryCollisionAvoidancePercent=10"
);

3. Broker端全局/地址级配置(统一管控)

如果需要对所有客户端或特定队列/地址统一设置重发策略,可修改Broker的broker.xml:

全局默认配置

<configuration>
  <core>
    <!-- 全局重发策略默认值 -->
    <default-retry-interval>1000</default-retry-interval>
    <default-retry-interval-multiplier>2.0</default-retry-interval-multiplier>
    <default-max-retry-interval>10000</default-max-retry-interval>
    <default-max-retries>5</default-max-retries>
    <default-use-retry-collision-avoidance>true</default-use-retry-collision-avoidance>
    <default-retry-collision-avoidance-percent>10</default-retry-collision-avoidance-percent>
  </core>
</configuration>

地址级精准配置(针对特定队列/地址)

<configuration>
  <core>
    <address-settings>
      <!-- match支持通配符,如"myQueue"或"order.*" -->
      <address-setting match="myQueue">
        <retry-interval>1000</retry-interval>
        <retry-interval-multiplier>2.0</retry-interval-multiplier>
        <max-retry-interval>10000</max-retry-interval>
        <max-retries>5</max-retries>
        <use-retry-collision-avoidance>true</use-retry-collision-avoidance>
        <retry-collision-avoidance-percent>10</retry-collision-avoidance-percent>
      </address-setting>
    </address-settings>
  </core>
</configuration>

注:Broker端配置优先级高于客户端配置,适合团队统一管控重发规则。

内容的提问来源于stack exchange,提问作者diziaq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 01:28:21