此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.1.4! |
RabbitMQ Consumer 属性
以下属性仅适用于 Rabbit 使用者,并且必须以spring.cloud.stream.rabbit.bindings.<channelName>.consumer.
.
但是,如果需要将同一组属性应用于大多数绑定,则
避免重复,Spring Cloud Stream 支持为所有通道设置值,
格式为spring.cloud.stream.rabbit.default.<property>=<value>
.
此外,请记住,绑定特定属性将覆盖其在默认值中的等效属性。
- acknowledgeMode
-
确认模式。
违约:
AUTO
. - anonymousGroupPrefix 的
-
当 binding 没有
group
property,则会将匿名的自动删除队列绑定到目标 Exchange。 此类队列的默认命名策略会导致一个名为anonymous.<base64 representation of a UUID>
. 设置此属性可将前缀更改为默认值以外的其他名称。违约:
anonymous.
. - autoBindDlq
-
是否自动声明 DLQ 并将其绑定到 Binder DLX。
违约:
false
. - bindingRoutingKey
-
用于将队列绑定到 exchange 的路由密钥(如果
bindQueue
是true
). 可以是多个键 - 请参阅bindingRoutingKeyDelimiter
. 对于分区目标,-<instanceIndex>
附加到每个键。违约:。
#
- bindingRoutingKeyDelimiter
-
当 this 不为 null 时,'bindingRoutingKey' 被视为由此值分隔的键列表;通常使用逗号。
违约:
null
. - bindQueue (绑定队列)
-
是否声明队列并将其绑定到目标 Exchange。 将其设置为
false
如果您已设置自己的基础设施,并且之前已创建并绑定队列。违约:
true
. - consumerTag前缀
-
用于创建 Consumer 标签;将附加为
#n
哪里n
创建的每个使用者的增量。 例:${spring.application.name}-${spring.cloud.stream.bindings.input.group}-${spring.cloud.stream.instance-index}
.默认值:none - 代理将生成随机的消费者标签。
- containerType 容器类型
-
选择要使用的侦听器容器类型。 有关更多信息,请参见 Spring AMQP 文档中的 选择容器 。 另请参阅 [rabbitmq-stream]。
违约:
simple
- deadLetterQueueName (死信队列名称)
-
DLQ 的名称
违约:
prefix+destination.dlq
- 死信交换
-
要分配给队列的 DLX。 仅在以下情况下相关
autoBindDlq
是true
.默认值: 'prefix+DLX'
- deadLetterExchange类型
-
要分配给队列的 DLX 的类型。 仅在以下情况下相关
autoBindDlq
是true
.默认值: 'direct'
- deadLetterRoutingKey
-
要分配给队列的死信路由键。 仅在以下情况下相关
autoBindDlq
是true
.违约:
destination
- 声明 Dlx
-
是否声明目标的死信交换。 仅在以下情况下相关
autoBindDlq
是true
. 设置为false
如果您有预配置的 DLX.违约:
true
. - declareExchange
-
是否声明目标的交换。
违约:
true
. - delayedExchange (延迟交换)
-
是否将交易所声明为
Delayed Message Exchange
. 需要 broker 上的 delayed message exchange 插件。 这x-delayed-type
参数设置为exchangeType
.违约:
false
. - dlqBindingArguments
-
将 dlq 绑定到死信交换时应用的参数;用于
headers
deadLetterExchangeType
指定要匹配的标头。 例如…dlqBindingArguments.x-match=any
,…dlqBindingArguments.someHeader=someValue
.默认值:空
- dlqDeadLetterExchange
-
如果声明了 DLQ,则为要分配给该队列的 DLX。
违约:
none
- dlqDeadLetterRoutingKey
-
如果声明了 DLQ,则为该队列分配一个死信路由键。
违约:
none
- dlq过期
-
删除未使用的死信队列之前的时间(以毫秒为单位)。
违约:
no expiration
- dlq懒惰
-
使用
x-queue-mode=lazy
论点。 请参见“延迟队列”。 请考虑使用策略而不是此设置,因为使用策略允许在不删除队列的情况下更改设置。违约:
false
. - dlqMaxLength
-
死信队列中的最大消息数。
违约:
no limit
- dlqMaxLengthBytes
-
来自所有消息的死信队列中的最大总字节数。
违约:
no limit
- dlqMaxPriority
-
死信队列中消息的最大优先级 (0-255)。
违约:
none
- dlqOverflowBehavior 函数
-
在以下情况下要执行的作
dlqMaxLength
或dlqMaxLengthBytes
超出;现在drop-head
或reject-publish
但请参阅 RabbitMQ 文档。违约:
none
- dlqQuorum.deliveryLimit
-
什么时候
quorum.enabled=true
,设置一个传递限制,超过该限制后,消息将被丢弃或死信。Default: none - 将应用代理默认值。
- dlqQuorum.enabled 已启用
-
如果为 true,则创建 quorum 死信队列,而不是 Classic 队列。
默认值:false
- dlqQuorum.initialGroupSize
-
什么时候
quorum.enabled=true
中,设置初始仲裁大小。Default: none - 将应用代理默认值。
- dlqSingleActiveConsumer
-
设置为 true 可将
x-single-active-consumer
queue 属性设置为 true。违约:
false
- dlqTtl
-
声明时应用于死信队列的默认生存时间(以毫秒为单位)。
违约:
no limit
- durableSubscription (耐用订阅)
-
订阅是否应为持久订阅。 仅在以下情况下有效
group
。违约:
true
. - exchange自动删除
-
如果
declareExchange
为 true,则是否应自动删除 Exchange(即,在删除最后一个队列后删除)。违约:
true
. - 交换耐用
-
如果
declareExchange
为 true,则 Exchange 是否应为 durable(即,它在代理重启后继续存在)。违约:
true
. - exchangeType
-
交易所类型:
direct
,fanout
,headers
或topic
对于非分区目标和direct
、headers 或topic
对于分区目标。违约:
topic
. - 独家
-
是否创建独占消费者。 当 Concurrency 为 1 时
true
. 通常在需要严格排序时使用,但允许热备用实例在发生故障后接管。 看recoveryInterval
,它控制备用实例尝试使用的频率。 考虑使用singleActiveConsumer
而是在使用 RabbitMQ 3.8 或更高版本时。违约:
false
. - 到期
-
删除未使用的队列之前的时间(以毫秒为单位)。
违约:
no expiration
- failedDeclarationRetryInterval
-
如果队列缺失,则尝试从队列中使用之间的间隔(以毫秒为单位)。
默认值:5000
- frameMaxHeadroom
-
将堆栈跟踪添加到 DLQ 消息标头时要为其他标头保留的字节数。 所有标头都必须适合
frame_max
size 配置。 堆栈跟踪可能很大;如果 size 加上 this 属性超过frame_max
则堆栈跟踪将被截断。 将写入 WARN 日志;考虑增加frame_max
或者通过捕获异常并引发具有较小堆栈跟踪的异常来减少堆栈跟踪。默认值:20000
- headerPatterns 的
-
要从入站消息映射的标头的模式。
默认值:(所有标头)。
['*']
- 懒惰
-
使用
x-queue-mode=lazy
论点。 请参见“延迟队列”。 请考虑使用策略而不是此设置,因为使用策略允许在不删除队列的情况下更改设置。违约:
false
. - max并发
-
消费者的最大数量。 不支持
containerType
是direct
.违约:
1
. - maxLength
-
队列中的最大消息数。
违约:
no limit
- maxLengthBytes
-
队列中所有消息的最大总字节数。
违约:
no limit
- 最大优先级
-
队列中消息的最大优先级 (0-255)。
违约:
none
- missingQueues致命
-
当找不到队列时,是否将该条件视为 fatal 并停止监听器容器。 默认为
false
以便容器不断尝试从队列中使用 — 例如,当使用集群并且托管非 HA 队列的节点关闭时。违约:
false
- overflowBehavior
-
在以下情况下要执行的作
maxLength
或maxLengthBytes
超出;现在drop-head
或reject-publish
但请参阅 RabbitMQ 文档。违约:
none
- 预取
-
预取计数。
违约:
1
. - 前缀
-
要添加到
destination
和队列。默认值: “”。
- queueBindingArguments
-
将队列绑定到 exchange 时应用的参数;用于
headers
exchangeType
指定要匹配的标头。 例如…queueBindingArguments.x-match=any
,…queueBindingArguments.someHeader=someValue
.默认值:空
- queueDeclarationRetries
-
如果队列缺失,则重试从队列中消费的次数。 仅当
missingQueuesFatal
是true
. 否则,容器将无限期地重试。 不支持containerType
是direct
.违约:
3
- queueNameGroupOnly
-
如果为 true,则从名称等于
group
. 否则,队列名称为destination.group
. 例如,当使用 Spring Cloud Stream 从现有 RabbitMQ 队列中使用时,这非常有用。默认值:false。
- quorum.deliveryLimit
-
什么时候
quorum.enabled=true
,设置一个传递限制,超过该限制后,消息将被丢弃或死信。Default: none - 将应用代理默认值。
- 法定人数已启用
-
如果为 true,则创建 quorum 队列而不是 Classic 队列。
默认值:false
- quorum.initialGroupSize
-
什么时候
quorum.enabled=true
中,设置初始仲裁大小。Default: none - 将应用代理默认值。
- recoveryInterval 的
-
连接恢复尝试之间的间隔(以毫秒为单位)。
违约:
5000
. - requeueRejected 的
-
禁用重试时是否应将投放失败重新排队,或者
republishToDlq
是false
.违约:
false
.
- republishDeliveryMode
-
什么时候
republishToDlq
是true
指定重新发布的消息的传递模式。违约:
DeliveryMode.PERSISTENT
- republishToDlq
-
默认情况下,在重试用尽后失败的消息将被拒绝。 如果配置了死信队列 (DLQ),则 RabbitMQ 会将失败的消息(未更改)路由到 DLQ。 如果设置为
true
,Binder 会将失败的消息重新发布到 DLQ,其中包含其他标头,包括异常消息和来自最终失败原因的堆栈跟踪。 另请参阅 frameMaxHeadroom 属性。违约:
true
- singleActiveConsumer
-
设置为 true 可将
x-single-active-consumer
queue 属性设置为 true。违约:
false
- 交易
-
是否使用事务处理通道。
违约:
false
. - ttl
-
声明时应用于队列的默认生存时间(以毫秒为单位)。
违约:
no limit
- txSize (tx大小)
-
ack 之间的投放数。 不支持
containerType
是direct
.违约:
1
.