这个版本仍在开发中,尚未达到稳定状态。要使用最新稳定版,请使用 spring-cloud-stream 5.0.1 spring-doc.cadn.net.cn

使用 RabbitMQ 的消费者属性

以下属性仅适用于 Rabbit 消费者,并且必须以 spring.cloud.stream.rabbit.bindings.<channelName>.consumer. 为前缀。spring-doc.cadn.net.cn

但是,如果需要将同一组属性应用于大多数绑定,为了防止重复,Spring Cloud Stream 支持在格式为 spring.cloud.stream.rabbit.default.<property>=<value> 的所有通道上设置值。spring-doc.cadn.net.cn

也请记住,绑定特定属性会将其默认值覆盖。spring-doc.cadn.net.cn

确认模式

确认模式。spring-doc.cadn.net.cn

默认值: AUTOspring-doc.cadn.net.cn

匿名组前缀

当绑定没有 group 属性时,会将一个匿名、自动删除的队列绑定到目标交换机。
此类队列的默认命名策略会导致队列命名为 anonymous.<base64 representation of a UUID>
将此属性设置为其他前缀可更改默认值。spring-doc.cadn.net.cn

默认值: anonymous.spring-doc.cadn.net.cn

自动绑定死信队列

是否自动声明死信队列(DLQ)并将其绑定到绑定器的死信交换(DLX)。spring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

绑定路由键

用于将队列绑定到交换机的路由键(如果bindQueuetrue)。可以有多个键——参见bindingRoutingKeyDelimiter。对于分区目的地,将在每个键后追加-<instanceIndex>spring-doc.cadn.net.cn

默认值: #spring-doc.cadn.net.cn

绑定路由键分隔符

当此值不为 null 时,将把 'bindingRoutingKey' 视为由该值分隔的键列表;通常使用逗号作为分隔符。spring-doc.cadn.net.cn

默认值: nullspring-doc.cadn.net.cn

绑定队列

是否声明队列并将其绑定到目标交换机。
如果已设置自己的基础设施并且先前创建并绑定了队列,请将其设置为falsespring-doc.cadn.net.cn

默认值: truespring-doc.cadn.net.cn

消费者标记前缀

用于创建消费者标签;每次创建一个消费者时,将会附加#n
示例:${spring.application.name}-${spring.cloud.stream.bindings.input.group}-${spring.cloud.stream.instance-index}spring-doc.cadn.net.cn

默认值:无 - 代理将生成随机的消费者标签。spring-doc.cadn.net.cn

容器类型

选择要使用的监听器容器类型。 有关更多信息,请参阅Spring AMQP文档中的选择容器部分。 另请参见[rabbitmq-stream]spring-doc.cadn.net.cn

默认值: simplespring-doc.cadn.net.cn

死信队列名称

死信队列的名称spring-doc.cadn.net.cn

默认值: prefix+destination.dlqspring-doc.cadn.net.cn

死信交换

一个DLX分配到队列。 仅当autoBindDlqtrue时相关。spring-doc.cadn.net.cn

默认值:'前缀+死信交换'spring-doc.cadn.net.cn

死信交换机类型

要分配给队列的DLX的类型。
仅当autoBindDlqtrue时相关。spring-doc.cadn.net.cn

默认值:'direct'spring-doc.cadn.net.cn

死信路由键

分配给队列的死信路由密钥。仅在 autoBindDlqtrue 时相关。spring-doc.cadn.net.cn

默认值: destinationspring-doc.cadn.net.cn

声明死信交换器

是否为目的地声明死信交换? 相关仅当autoBindDlqtrue时。 若已预配置DLX,请设为falsespring-doc.cadn.net.cn

默认值: truespring-doc.cadn.net.cn

声明交换机

是否为目的地声明交换机。spring-doc.cadn.net.cn

默认值: truespring-doc.cadn.net.cn

延迟交换

是否将交换声明为Delayed Message Exchange
需要在代理上安装延迟消息交换插件。
x-delayed-type参数设置为exchangeTypespring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

延迟队列绑定参数

绑定死信交换时应用于死信队列(dlq)的参数;与 headers deadLetterExchangeType 结合使用,用于指定要匹配的头部信息。例如 …​dlqBindingArguments.x-match=any, …​dlqBindingArguments.someHeader=someValuespring-doc.cadn.net.cn

死信队列死信交换机

如果声明了一个死信队列(DLQ),则需指定一个死信交换器(DLX)来分配给该队列。spring-doc.cadn.net.cn

默认值: nonespring-doc.cadn.net.cn

死信队列死信路由键

如果声明了死信队列,则需要指定一个分配给该队列的死信路由键。spring-doc.cadn.net.cn

默认值: nonespring-doc.cadn.net.cn

延迟队列到期

未使用的死信队列在被删除前的等待时间(以毫秒为单位)。spring-doc.cadn.net.cn

默认值: no expirationspring-doc.cadn.net.cn

懒加载

使用x-queue-mode=lazy参数声明死信队列。参见“延迟队列”。建议改用策略而不是此设置,因为策略允许在不删除队列的情况下更改该设置。spring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

最大dlq长度

死信队列中的最大消息数。spring-doc.cadn.net.cn

默认值: no limitspring-doc.cadn.net.cn

最大字节数

死信队列中所有消息的最大总字节数。spring-doc.cadn.net.cn

默认值: no limitspring-doc.cadn.net.cn

最大优先级队列

死信队列中消息的最大优先级(0-255)。spring-doc.cadn.net.cn

默认值: nonespring-doc.cadn.net.cn

队列溢出时的行为

当超过dlqMaxLengthdlqMaxLengthBytes时要采取的操作;目前为drop-headreject-publish,但请参考RabbitMQ文档。spring-doc.cadn.net.cn

默认值: nonespring-doc.cadn.net.cn

dlqQuorum.deliveryLimit

quorum.enabled=true 时,设置一个投递限制,超过该限制后消息将被丢弃或转为死信。spring-doc.cadn.net.cn

默认:无 - 将应用代理程序默认设置。spring-doc.cadn.net.cn

dlqQuorum.enabled

当为 true 时,创建一个法定人数死信队列而不是经典队列。spring-doc.cadn.net.cn

(默认值:false)spring-doc.cadn.net.cn

dlqQuorum.initialGroupSize

quorum.enabled=true 时,设置初始法定人数大小。spring-doc.cadn.net.cn

默认:无 - 将应用代理程序默认设置。spring-doc.cadn.net.cn

单个活动消费者

设置为 true 可将 x-single-active-consumer 队列属性设为 true。spring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

dlqTtl

声明死信队列时应用的默认生存时间(以毫秒为单位)。spring-doc.cadn.net.cn

默认值: no limitspring-doc.cadn.net.cn

持久化订阅

订阅是否应该持久化。只有在同时设置group时才有效。spring-doc.cadn.net.cn

默认值: truespring-doc.cadn.net.cn

交换自动删除

如果 declareExchange 为真,则表示交换机是否应该自动删除(即在最后一个队列被删除后将其移除)。spring-doc.cadn.net.cn

默认值: truespring-doc.cadn.net.cn

交换机持久化

如果 declareExchange 为真,则表示交换机是否应具有持久性(即,在代理重启后仍然存在)。spring-doc.cadn.net.cn

默认值: truespring-doc.cadn.net.cn

交易类型

交换类型:directfanoutheaderstopic 表示非分区目的地,而 direct、标题或 topic 表示分区目的地。spring-doc.cadn.net.cn

默认值: topicspring-doc.cadn.net.cn

独家

是否创建独占消费者。 当此值为 true 时,并发应设置为 1。 通常在需要严格顺序但启用热备用实例以在发生故障后接管时使用。 参见 recoveryInterval,它控制备用实例尝试消费的频率。 当使用 RabbitMQ 3.8 或更高版本时,建议改用 singleActiveConsumerspring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

到期

多久以后未使用的队列会被删除(以毫秒为单位)。spring-doc.cadn.net.cn

默认值: no expirationspring-doc.cadn.net.cn

声明失败重试间隔

如果队列缺失,则尝试从队列中消耗之间的间隔(以毫秒为单位)。spring-doc.cadn.net.cn

默认值:5000spring-doc.cadn.net.cn

框架最大回程

将堆栈跟踪添加到死信队列(DLQ)消息头时,为其他标头保留的字节数。所有标头必须符合代理上配置的frame_max大小。
堆栈跟踪可能很大;如果此属性加上堆栈跟踪的大小超过frame_max,则堆栈跟踪将被截断。
将会记录一个警告日志;考虑增加frame_max或通过捕获异常并抛出自定义较小堆栈跟踪的异常来减少堆栈跟踪。spring-doc.cadn.net.cn

默认值:20000spring-doc.cadn.net.cn

headerPatterns

从入站消息映射标头的模式。spring-doc.cadn.net.cn

默认:['*'](所有头部)。spring-doc.cadn.net.cn

懒加载

使用 x-queue-mode=lazy 参数声明队列。
参见 “延迟队列”
建议改用策略,而不是此设置,因为策略允许在不删除队列的情况下更改设置。spring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

最大并发数

消费者的最大数量。
containerTypedirect时不支持。spring-doc.cadn.net.cn

默认值: 1spring-doc.cadn.net.cn

最大长度

队列中消息的最大数量。spring-doc.cadn.net.cn

默认值: no limitspring-doc.cadn.net.cn

最大长度字节

队列中所有消息的最大总字节数。spring-doc.cadn.net.cn

默认值: no limitspring-doc.cadn.net.cn

最高严重程度

队列中消息的最大优先级(0-255)。spring-doc.cadn.net.cn

默认值: nonespring-doc.cadn.net.cn

缺少队列致命

当找不到队列时,是否将此情况视为致命错误并停止监听器容器。默认值为false,因此容器会不断尝试从队列中消费消息——例如,在使用集群时,如果托管非高可用性队列的节点宕机。spring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

溢出行为

当超过maxLengthmaxLengthBytes时要采取的操作;目前为drop-headreject-publish,但请参考RabbitMQ文档。spring-doc.cadn.net.cn

默认值: nonespring-doc.cadn.net.cn

预取

预取计数。spring-doc.cadn.net.cn

默认值: 1spring-doc.cadn.net.cn

前缀

要添加到destination和队列名称前缀。spring-doc.cadn.net.cn

默认值:""。spring-doc.cadn.net.cn

队列绑定参数

绑定队列到交换时应用的参数;用于指定要匹配的标头,例如…​queueBindingArguments.x-match=any…​queueBindingArguments.someHeader=someValue
使用headersexchangeType来指定要匹配的标头。spring-doc.cadn.net.cn

队列声明重试次数

如果队列缺失,从队列中重新消费的重试次数。
仅当missingQueuesFataltrue时有效。
否则,容器将无限期地重试。
不支持当containerTypedirect的情况。spring-doc.cadn.net.cn

默认值: 3spring-doc.cadn.net.cn

仅队列名组

当为 true 时,从队列名称等于group的队列中消费。否则队列名称为destination.group。例如,在使用 Spring Cloud Stream 来从现有的 RabbitMQ 队列进行消费时,这很有用。spring-doc.cadn.net.cn

默认值:false。spring-doc.cadn.net.cn

quorum.deliveryLimit

quorum.enabled=true 时,设置一个投递限制,超过该限制后消息将被丢弃或转为死信。spring-doc.cadn.net.cn

默认:无 - 将应用代理程序默认设置。spring-doc.cadn.net.cn

quorum.enabled

为真时,创建一个法定人数队列而不是经典队列。spring-doc.cadn.net.cn

(默认值:false)spring-doc.cadn.net.cn

quorum.initialGroupSize

quorum.enabled=true 时,设置初始法定人数大小。spring-doc.cadn.net.cn

默认:无 - 将应用代理程序默认设置。spring-doc.cadn.net.cn

恢复间隔

连接恢复尝试之间的间隔,单位为毫秒。spring-doc.cadn.net.cn

默认值: 5000spring-doc.cadn.net.cn

重新排队拒绝的

当重试被禁用或republishToDlq时,是否应重新排队交付失败的消息。false表示是。spring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

重新发布配送模式

republishToDlqtrue 时,指定重新发布的消息的传递模式。spring-doc.cadn.net.cn

默认值: DeliveryMode.PERSISTENTspring-doc.cadn.net.cn

转发到死信队列

默认情况下,重试次数用尽后仍失败的消息会被拒绝。如果配置了死信队列(DLQ),RabbitMQ会将失败的消息(未更改)路由到DLQ。如果设置为true,绑定器会将失败的消息重新发布到DLQ,并添加额外的标题,包括最终失败原因中的异常消息和堆栈跟踪。另请参阅frameMaxHeadroom属性spring-doc.cadn.net.cn

默认值: truespring-doc.cadn.net.cn

singleActiveConsumer

设置为 true 可将 x-single-active-consumer 队列属性设为 true。spring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

事务性

是否使用事务通道。spring-doc.cadn.net.cn

默认值: falsespring-doc.cadn.net.cn

TTL

声明队列时要应用的默认存活时间(以毫秒为单位)。spring-doc.cadn.net.cn

默认值: no limitspring-doc.cadn.net.cn

字体大小

在确认之间交付的数量。
containerTypedirect时不支持。spring-doc.cadn.net.cn

默认值: 1spring-doc.cadn.net.cn