此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.1.4! |
RabbitMQ 创建器属性
以下属性仅适用于 Rabbit 生产者,并且必须以spring.cloud.stream.rabbit.bindings.<channelName>.producer.
.
但是,如果需要将同一组属性应用于大多数绑定,则
避免重复,Spring Cloud Stream 支持为所有通道设置值,
格式为spring.cloud.stream.rabbit.default.<property>=<value>
.
此外,请记住,绑定特定属性将覆盖其在默认值中的等效属性。
- altermateExchange.binding.queue
-
如果该交易所尚不存在,并且
name
,将此队列绑定到备用 exhange。 预置了一个没有参数的简单持久队列;如果需要更复杂的配置,则必须自行配置和绑定队列。违约:
null
alternateExchange.binding.routingKey 如果该交易所尚不存在,并且name
和queue
,请使用此路由键将队列绑定到备用 exhange。默认值:(对于默认的
#
topic
替代交换) - alternateExchange.exists
-
备用 Exchange 是否存在或需要预置。
违约:
false
- alternateExchange.type
-
如果备用 exchange 尚不存在,则为要配置的 exchange 类型。
违约:
topic
- alternateExchange.name
-
在目标交换上配置备用交换。
违约:
null
- autoBindDlq
-
是否自动声明 DLQ 并将其绑定到 Binder DLX。
违约:
false
. - batching已启用
-
是否启用生产者消息批处理。 根据以下属性(在此列表中的以下三个条目中描述),消息将批处理为一条消息:'batchSize'、
batchBufferLimit
和batchTimeout
. 有关更多信息,请参阅 批处理 。 另请参阅接收 Batched Messages。违约:
false
. - 批量大小
-
启用批处理时要缓冲的消息数。
违约:
100
. - batchBufferLimit
-
启用批处理时的最大缓冲区大小。
违约:
10000
. - batch超时
-
启用批处理时的批处理超时。
违约:
5000
. - bindingRoutingKey
-
用于将队列绑定到 exchange 的路由密钥(如果
bindQueue
是true
). 可以是多个键 - 请参阅bindingRoutingKeyDelimiter
. 对于分区目标,-n
附加到每个键。 仅适用于requiredGroups
,然后仅提供给这些组。违约:。
#
- bindingRoutingKeyDelimiter
-
当 this 不为 null 时,'bindingRoutingKey' 被视为由此值分隔的键列表;通常使用逗号。 仅适用于
requiredGroups
,然后仅提供给这些组。违约:
null
. - bindQueue (绑定队列)
-
是否声明队列并将其绑定到目标 Exchange。 将其设置为
false
如果您已设置自己的基础设施,并且之前已创建并绑定队列。 仅适用于requiredGroups
,然后仅提供给这些组。违约:
true
. - 压缩
-
发送时是否应压缩数据。
违约:
false
. - confirmAckChannel 确认
-
什么时候
errorChannelEnabled
为 true,则是向其发送肯定投放确认的渠道(也称为 Publisher confirms)。 如果通道不存在,则DirectChannel
将使用此名称注册。 必须将连接工厂配置为启用发布者确认。 互斥useConfirmHeader
.违约:
nullChannel
(丢弃 ACK)。 - deadLetterQueueName (死信队列名称)
-
DLQ 的名称 仅适用于
requiredGroups
,然后仅提供给这些组。违约:
prefix+destination.dlq
- 死信交换
-
要分配给队列的 DLX。 仅当
autoBindDlq
是true
. 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。默认值: 'prefix+DLX'
- deadLetterExchange类型
-
要分配给队列的 DLX 的类型。 仅当
autoBindDlq
是true
. 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。默认值: 'direct'
- deadLetterRoutingKey
-
要分配给队列的死信路由键。 仅当
autoBindDlq
是true
. 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。违约:
destination
- 声明 Dlx
-
是否声明目标的死信交换。 仅当
autoBindDlq
是true
. 设置为false
如果您有预配置的 DLX. 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。违约:
true
. - declareExchange
-
是否声明目标的交换。
违约:
true
. - delay表达式
-
一个 SPEL 表达式,用于评估要应用于消息的延迟 (
x-delay
标头)。 如果交换不是延迟消息交换,则它不起作用。默认值:否
x-delay
header 的 - delayedExchange (延迟交换)
-
是否将交易所声明为
Delayed Message Exchange
. 需要 broker 上的 delayed message exchange 插件。 这x-delayed-type
参数设置为exchangeType
.违约:
false
. - deliveryMode 交付模式
-
交货模式。
违约:
PERSISTENT
. - dlqBindingArguments
-
将 dlq 绑定到死信交换时应用的参数;用于
headers
deadLetterExchangeType
指定要匹配的标头。 例如…dlqBindingArguments.x-match=any
,…dlqBindingArguments.someHeader=someValue
. 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。默认值:空
- dlqDeadLetterExchange
-
声明 DLQ 时,要分配给该队列的 DLX。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
none
- dlqDeadLetterRoutingKey
-
声明 DLQ 时,要分配给该队列的死信路由键。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
none
- dlq过期
-
删除未使用的死信队列之前的时间(以毫秒为单位)。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
no expiration
- dlq懒惰
-
使用
x-queue-mode=lazy
论点。 请参见“延迟队列”。 请考虑使用策略而不是此设置,因为使用策略允许在不删除队列的情况下更改设置。 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。 - dlqMaxLength
-
死信队列中的最大消息数。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
no limit
- dlqMaxLengthBytes
-
来自所有消息的死信队列中的最大总字节数。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
no limit
- dlqMaxPriority
-
死信队列中消息的最大优先级 (0-255) 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
none
- dlqQuorum.deliveryLimit
-
什么时候
quorum.enabled=true
,设置一个传递限制,超过该限制后,消息将被丢弃或死信。 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。Default: none - 将应用代理默认值。
- dlqQuorum.enabled 已启用
-
如果为 true,则创建 quorum 死信队列,而不是 Classic 队列。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。默认值:false
- dlqQuorum.initialGroupSize
-
什么时候
quorum.enabled=true
中,设置初始仲裁大小。 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。Default: none - 将应用代理默认值。
- dlqSingleActiveConsumer
-
设置为 true 可将
x-single-active-consumer
queue 属性设置为 true。 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。违约:
false
- dlqTtl
-
声明时应用于死信队列的默认生存时间(以毫秒为单位)。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
no limit
- exchange自动删除
-
如果
declareExchange
是true
,是否应自动删除交换(在删除最后一个队列后将其删除)。违约:
true
. - 交换耐用
-
如果
declareExchange
是true
,则 Exchange 是否应为 Durable (在代理重启后继续存在)。违约:
true
. - exchangeType
-
交易所类型:
direct
,fanout
,headers
或topic
对于非分区目标和direct
,headers
或topic
对于分区目标。违约:
topic
. - 到期
-
删除未使用的队列之前的时间 (以毫秒为单位)。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
no expiration
- headerPatterns 的
-
要映射到出站消息的标头的模式。
默认值:(所有标头)。
['*']
- 懒惰
-
使用
x-queue-mode=lazy
论点。 请参见“延迟队列”。 请考虑使用策略而不是此设置,因为使用策略允许在不删除队列的情况下更改设置。 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。违约:
false
. - maxLength
-
队列中的最大消息数。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
no limit
- maxLengthBytes
-
队列中所有消息的最大总字节数。 仅适用于
requiredGroups
,然后仅提供给这些组。违约:
no limit
- 最大优先级
-
队列中消息的最大优先级 (0-255)。 仅适用于
requiredGroups
,然后仅提供给这些组。违约:
none
- 前缀
-
要添加到
destination
交换。默认值: “”。
- producerType
-
生产者类型。
-
AMQP
用于经典队列和仲裁队列的 AMQP 客户端 -
STREAM_SYNC
RabbitMQ Streams Plugin 客户端,在收到确认之前会阻塞 -
STREAM_ASYNC
RabbitMQ Streams Plugin 客户端,不会阻塞默认值: “”。
-
- queueBindingArguments
-
将队列绑定到 exchange 时应用的参数;用于
headers
exchangeType
指定要匹配的标头。 例如…queueBindingArguments.x-match=any
,…queueBindingArguments.someHeader=someValue
. 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。默认值:空
- queueNameGroupOnly
-
什么时候
true
,从名称等于group
. 否则,队列名称为destination.group
. 例如,当使用 Spring Cloud Stream 从现有 RabbitMQ 队列中使用时,这非常有用。 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。默认值:false。
- quorum.deliveryLimit
-
什么时候
quorum.enabled=true
,设置一个传递限制,超过该限制后,消息将被丢弃或死信。 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。Default: none - 将应用代理默认值。
- 法定人数已启用
-
如果为 true,则创建 quorum 队列而不是 Classic 队列。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。默认值:false
- quorum.initialGroupSize
-
什么时候
quorum.enabled=true
中,设置初始仲裁大小。 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。Default: none - 将应用代理默认值。
- routingKeyExpression 的
-
一个 SPEL 表达式,用于确定发布消息时要使用的路由键。 对于固定路由密钥,请使用
routingKey
.违约:
destination
或destination-<partition>
对于分区目标。 - routingKey
-
一个字符串,用于定义发布消息时要使用的固定路由密钥。
默认:请参阅
routingKeyExpression
- singleActiveConsumer
-
设置为 true 可将
x-single-active-consumer
queue 属性设置为 true。 仅在以下情况下适用requiredGroups
,然后仅提供给这些组。违约:
false
- 交易
-
是否使用事务处理通道。
违约:
false
. - ttl
-
声明时应用于队列的默认生存时间(以毫秒为单位)。 仅在以下情况下适用
requiredGroups
,然后仅提供给这些组。违约:
no limit
- 使用ConfirmHeader
-
请参阅 发布者确认。 互斥与
confirmAckChannel
.对于 RabbitMQ,内容类型标头可以由外部应用程序设置。 Spring Cloud Stream 支持将它们作为扩展内部协议的一部分,用于任何类型的传输,包括传输,例如 Kafka(0.11 之前),它们本身不支持 headers。