7.2.3. 消费者策略配置属性

下表将 AMQ 6 中的服务器端目标策略配置属性与 AMQ Broker 7 中的等同的属性进行了比较。这些属性仅适用于 OpenWire 客户端:

要设置…​在 AMQ 6 中在 AMQ Broker 7 中

队列 prefetch

queuePrefetch

代理没有等效的。但是,您可以通过在连接 URL 中设置 consumerWindowSize 或直接在 ActiveMQConnectionFactory API 上设置 来设置在消费者中缓冲的最大信息大小(以字节为单位)。

从队列发送消息时是否使用消费者的优先级

useConsumerPriority

默认值为 true

AMQ Broker 7 中不存在此功能。

是否使用 prefetch 扩展来使代理在发送上一个消息但未确认时发送"prefetch"消息

usePrefetchExtension

默认值为 true

AMQ Broker 7 中不存在此功能。

初始重新传送延迟

initialRedeliveryDelay

默认值为 1000 ms。

无等效.broker 实例会自动解决这个问题。

在重新传送已取消消息前等待多长时间

redeliveryDelay

如果 initialRedeliveryDelay 设置为 0,则发送延迟。默认值为 1000 ms。

<redelivery-delay>

默认值为 0 ms。

exponential back-off

useExponentialBackoff

默认值为 false

无等效.您可以使用任何其他使用者策略配置属性来配置消费者的重新传送。

Backoff 倍数

backOffMultiplier

默认值为 5。

<redelivery-multiplier>

应用到重新发送延迟的倍数。默认值为 1.0。

取消的消息被重新传送到代理的 Dead Letter Queue 前可以重新传送最多次数

maximumRedeliveries

默认值为 6。

<max-delivery-attempts>

默认值为 10。

重新传送延迟的最大值

maximumRedeliveryDelay

这只有在设置了 useExponentialBackoff 属性时才应用。默认值为 -1(无最大重新传送延迟)。

<max-redelivery-delay>

默认值为 0。

客户端在秒中可以消耗的消息数量

无等效.

代理没有等效的。但是,您可以通过在连接 URL 中设置 consumerMaxRate 或直接在 ActiveMQConnectionFactory API 上进行设置。

consumerMaxRate 属性不会影响客户端在其缓冲区中的消息数量。因此,如果客户端有慢速率限制和较高的窗口大小,客户端的内部缓冲区将快速填满消息。