RabbitMQ 生产者属性
以下属性仅适用于 Rabbit 生产者,并且必须以 spring.cloud.stream.rabbit.bindings.<channelName>.producer. 为前缀。
然而,如果需要将相同的属性集应用于大多数绑定,为了避免重复,Spring Cloud Stream 支持以 spring.cloud.stream.rabbit.default.<property>=<value> 的格式为所有通道设置值。
此外,请记住,特定于绑定的属性将覆盖其在默认设置中的等效属性。
- alternateExchange.binding.queue
-
如果交换机尚不存在,并且提供了
name,则将此队列绑定到备用交换机。将配置一个简单的、持久的、不带参数的队列;如果需要更复杂的配置,您必须自行配置和绑定队列。默认值:
nullalternateExchange.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
-
当此值不为 null 时,'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
-
一个 SpEL 表达式,用于评估应用于消息的延迟(
x-delay头部)。如果交换机不是延迟消息交换机,则无效。默认值:未设置
x-delay头部。 - delayedExchange
-
是否将交换机声明为
延迟消息交换机。需要代理上的延迟消息交换机插件。x-delayed-type参数设置为exchangeType。默认值:
false。 - deliveryMode
-
投递模式。
默认值:
PERSISTENT。 - dlqBindingArguments
-
将 dlq 绑定到死信交换机时应用的参数;与
headersdeadLetterExchangeType一起使用以指定要匹配的头部。例如…dlqBindingArguments.x-match=any,…dlqBindingArguments.someHeader=someValue。仅当提供了requiredGroups时才适用,并且仅适用于这些组。默认值:空
- dlqDeadLetterExchange
-
声明 DLQ 时,要分配给该队列的 DLX。仅当提供了
requiredGroups时才适用,并且仅适用于这些组。默认值:
none - dlqDeadLetterRoutingKey
-
声明 DLQ 时,要分配给该队列的死信路由键。仅当提供了
requiredGroups时才适用,并且仅适用于这些组。默认值:
none - dlqExpires
-
未使用死信队列被删除前的持续时间(毫秒)。仅当提供了
requiredGroups时才适用,并且仅适用于这些组。默认值:
无过期时间 - dlqLazy
-
使用
x-queue-mode=lazy参数声明死信队列。请参阅 “惰性队列”。考虑使用策略而不是此设置,因为使用策略允许更改设置而无需删除队列。仅当提供了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时才适用,并且仅适用于这些组。默认值:
无过期时间 - headerPatterns
-
要映射到出站消息的头部模式。
默认值:
['*'](所有头部)。 - lazy
-
使用
x-queue-mode=lazy参数声明队列。请参阅 “惰性队列”。考虑使用策略而不是此设置,因为使用策略允许更改设置而无需删除队列。仅当提供了requiredGroups时才适用,并且仅适用于这些组。默认值:
false。 - maxLength
-
队列中的最大消息数量。仅当提供了
requiredGroups时才适用,并且仅适用于这些组。默认值:
无限制 - maxLengthBytes
-
队列中所有消息的总最大字节数。仅当提供了
requiredGroups时才适用,并且仅适用于这些组。默认值:
无限制 - maxPriority
-
队列中消息的最大优先级 (0-255)。仅当提供了
requiredGroups时才适用,并且仅适用于这些组。默认值:
none - prefix
-
要添加到
destination交换机名称的前缀。默认值:""。
- producerType
-
生产者的类型。
-
AMQP经典队列和仲裁队列的 AMQP 客户端 -
STREAM_SYNCRabbitMQ 流插件客户端,阻塞直到收到确认 -
STREAM_ASYNCRabbitMQ 流插件客户端,不阻塞默认值:""。
-
- queueBindingArguments
-
将队列绑定到交换机时应用的参数;与
headersexchangeType一起使用以指定要匹配的头部。例如…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 之前) 等原生不支持头部的传输)的扩展内部协议的一部分来支持。