RabbitMQ 生产者属性
以下属性仅适用于 Rabbit 生产者,必须以 spring.cloud.stream.rabbit.bindings.<channelName>.producer.
为前缀。
但是,如果需要将同一组属性应用于大多数绑定,为了避免重复,Spring Cloud Stream 支持为所有通道设置值,格式为 spring.cloud.stream.rabbit.default.<property>=<value>
。
此外,请记住,绑定特定属性将覆盖其在默认值中的等效项。
- altermateExchange.binding.queue
-
如果交换机不存在,并且提供了
name
,则将此队列绑定到备用交换机。将提供一个简单的持久队列,没有参数;如果需要更复杂的配置,您必须自己配置和绑定队列。默认:
null
alternateExchange.binding.routingKey 如果交换机不存在,并且提供了name
和queue
,则使用此路由键将队列绑定到备用交换机。默认:
#
(对于默认的topic
备用交换机) - alternateExchange.exists
-
备用交换机是否存在,还是需要配置。
默认值:
false
- alternateExchange.type
-
如果备用交换机不存在,则要配置的交换机类型。
默认值:
topic
- alternateExchange.name
-
在目标交换机上配置备用交换机。
默认值:
null
- autoBindDlq
-
是否自动声明 DLQ 并将其绑定到绑定器 DLX。
默认值:
false
。 - batchingEnabled
-
是否启用生产者进行消息批处理。消息根据以下属性(在列表中的接下来的三个条目中描述)批处理成一条消息:'batchSize'、
batchBufferLimit
和batchTimeout
。有关更多信息,请参阅 批处理。另请参阅 接收批处理消息。默认值:
false
。 - batchSize
-
启用批处理时要缓冲的消息数量。
默认值:
100
。 - batchBufferLimit
-
启用批处理时的最大缓冲区大小。
默认值:
10000
。 - batchTimeout
-
启用批处理时的批处理超时。
默认值:
5000
。 - bindingRoutingKey
-
将队列绑定到交换机(如果
bindQueue
为true
)时使用的路由键。可以是多个键 - 请参阅bindingRoutingKeyDelimiter
。对于分区目标,-n
会附加到每个键。仅在提供requiredGroups
时才适用,并且仅适用于这些组。默认值:
#
。 - bindingRoutingKeyDelimiter
-
当此值不为空时,'bindingRoutingKey' 被认为是使用此值分隔的键列表;通常使用逗号。仅在提供
requiredGroups
时才适用,并且仅适用于这些组。默认值:
null
。 - bindQueue
-
是否声明队列并将其绑定到目标交换机。如果您已经设置了自己的基础设施并之前创建并绑定了队列,请将其设置为
false
。仅在提供requiredGroups
时才适用,并且仅适用于这些组。默认值:
true
。 - compress
-
发送时是否应压缩数据。
默认值:
false
。 - confirmAckChannel
-
当
errorChannelEnabled
为 true 时,用于发送正向传递确认(也称为发布者确认)的通道。如果通道不存在,则使用此名称注册一个DirectChannel
。连接工厂必须配置为启用发布者确认。与useConfirmHeader
互斥。默认值:
nullChannel
(确认被丢弃)。 - deadLetterQueueName
-
DLQ 的名称。仅在提供
requiredGroups
时才适用,并且仅适用于这些组。默认值:
prefix+destination.dlq
- deadLetterExchange
-
分配给队列的 DLX。仅当
autoBindDlq
为true
时才相关。仅在提供requiredGroups
时才适用,并且仅适用于这些组。默认值:'prefix+DLX'
- deadLetterExchangeType
-
分配给队列的 DLX 类型。仅当
autoBindDlq
为true
时才相关。仅在提供requiredGroups
时才适用,并且仅适用于这些组。默认值:'direct'
- deadLetterRoutingKey
-
分配给队列的死信路由键。仅当
autoBindDlq
为true
时才相关。仅在提供requiredGroups
时才适用,并且仅适用于这些组。默认值:
destination
- declareDlx
-
是否为目标声明死信交换机。仅当
autoBindDlq
为true
时才相关。如果您有预先配置的 DLX,则将其设置为false
。仅在提供requiredGroups
时才适用,并且仅适用于这些组。默认值:
true
。 - declareExchange
-
是否为目标声明交换机。
默认值:
true
。 - delayExpression
-
用于评估要应用于消息的延迟(
x-delay
标头)的 SpEL 表达式。如果交换机不是延迟消息交换机,则它没有效果。默认值:未设置
x-delay
标头。 - delayedExchange
-
是否将交换机声明为
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
- dlqExpires
-
未使用的死信队列在删除之前持续的时间(以毫秒为单位)。仅在提供
requiredGroups
时才适用,并且仅适用于这些组。默认值:
no expiration
- dlqLazy
-
使用
x-queue-mode=lazy
参数声明死信队列。请参阅 “Lazy Queues”。考虑使用策略而不是此设置,因为使用策略允许更改设置而无需删除队列。仅在提供requiredGroups
时才适用,并且仅适用于这些组。 - dlqMaxLength
-
死信队列中的最大消息数。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:
无限制
- dlqMaxLengthBytes
-
死信队列中所有消息的总字节数的最大值。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:
无限制
- dlqMaxPriority
-
死信队列中消息的最大优先级(0-255)。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:
none
- dlqQuorum.deliveryLimit
-
当
quorum.enabled=true
时,设置消息在被丢弃或进入死信队列之前的传递限制。仅在提供requiredGroups
时适用,并且仅适用于这些组。默认值:无 - 将应用代理默认值。
- dlqQuorum.enabled
-
当为 true 时,创建一个仲裁死信队列而不是经典队列。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:false
- dlqQuorum.initialGroupSize
-
当
quorum.enabled=true
时,设置初始仲裁大小。仅在提供requiredGroups
时适用,并且仅适用于这些组。默认值:无 - 将应用代理默认值。
- dlqSingleActiveConsumer
-
设置为 true 以将
x-single-active-consumer
队列属性设置为 true。仅在提供requiredGroups
时适用,并且仅适用于这些组。默认值:
false
- dlqTtl
-
在声明时应用于死信队列的默认生存时间(以毫秒为单位)。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:
无限制
- exchangeAutoDelete
-
如果
declareExchange
为true
,则交换机是否应自动删除(在最后一个队列删除后删除)。默认值:
true
。 - exchangeDurable
-
如果
declareExchange
为true
,则交换机是否应持久化(在代理重启后仍然存在)。默认值:
true
。 - exchangeType
-
交换机类型:对于非分区目标,为
direct
、fanout
、headers
或topic
;对于分区目标,为direct
、headers
或topic
。默认值:
topic
。 - expires
-
未使用的队列在被删除之前的时间(以毫秒为单位)。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:
no expiration
- headerPatterns
-
要映射到出站消息的标头的模式。
默认值:
['*']
(所有标头)。 - lazy
-
使用
x-queue-mode=lazy
参数声明队列。请参阅“延迟队列”。考虑使用策略而不是此设置,因为使用策略允许更改设置而无需删除队列。仅在提供requiredGroups
时适用,并且仅适用于这些组。默认值:
false
。 - maxLength
-
队列中消息的最大数量。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:
无限制
- maxLengthBytes
-
队列中所有消息的总字节数的最大值。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:
无限制
- maxPriority
-
队列中消息的最大优先级(0-255)。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:
none
- prefix
-
要添加到
destination
交换机名称的前缀。默认值:""。
- producerType
-
生产者的类型。
-
AMQP
用于经典和仲裁队列的 AMQP 客户端 -
STREAM_SYNC
RabbitMQ Streams 插件客户端,阻塞直到收到确认 -
STREAM_ASYNC
RabbitMQ Streams 插件客户端,不阻塞默认值:""。
-
- queueBindingArguments
-
将队列绑定到交换机时应用的参数;与
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
时适用,并且仅适用于这些组。默认值:无 - 将应用代理默认值。
- quorum.enabled
-
当为 true 时,创建仲裁队列而不是经典队列。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:false
- quorum.initialGroupSize
-
当
quorum.enabled=true
时,设置初始仲裁大小。仅在提供requiredGroups
时适用,并且仅适用于这些组。默认值:无 - 将应用代理默认值。
- routingKeyExpression
-
用于确定发布消息时使用的路由键的 SpEL 表达式。对于固定路由键,请使用
routingKey
。默认值:
destination
或destination-<partition>
(对于分区目标)。 - routingKey
-
用于定义发布消息时使用的固定路由键的字符串。
默认值:请参见
routingKeyExpression
- singleActiveConsumer
-
设置为 true 以将
x-single-active-consumer
队列属性设置为 true。仅在提供requiredGroups
时适用,并且仅适用于这些组。默认值:
false
- transacted
-
是否使用事务通道。
默认值:
false
。 - ttl
-
声明时应用于队列的默认生存时间(以毫秒为单位)。仅在提供
requiredGroups
时适用,并且仅适用于这些组。默认值:
无限制
- useConfirmHeader
-
请参见发布者确认。与
confirmAckChannel
互斥。在 RabbitMQ 的情况下,内容类型标头可以由外部应用程序设置。Spring Cloud Stream 支持它们作为用于任何类型传输(包括 Kafka 等传输(在 0.11 之前))的扩展内部协议的一部分,这些传输本身不支持标头。