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