RabbitMQ 生产者属性

以下属性仅适用于 Rabbit 生产者,并且必须以spring.cloud.stream.rabbit.bindings.<channelName>.producer.为前缀。

但是,如果需要将相同的属性集应用于大多数绑定,为了避免重复,Spring Cloud Stream 支持为所有通道设置值,格式为spring.cloud.stream.rabbit.default.<property>=<value>

此外,请记住,绑定特定的属性将覆盖其在默认值中的等效项。

alternateExchange.binding.queue

如果交换机尚不存在,并且提供了name,则将此队列绑定到备用交换机。将预配一个简单的持久化队列,没有任何参数;如果需要更复杂的配置,则必须自行配置和绑定队列。

默认值:null alternateExchange.binding.routingKey 如果交换机尚不存在,并且提供了namequeue,则使用此路由键将队列绑定到备用交换机。

默认值:#(对于默认的topic备用交换机)

alternateExchange.exists

备用交换机是否存在,或者是否需要预配。

默认值:false

alternateExchange.type

如果备用交换机尚不存在,则要预配的交换机类型。

默认值:topic

alternateExchange.name

在目标交换机上配置备用交换机。

默认值:null

autoBindDlq

是否自动声明 DLQ 并将其绑定到 Binder DLX。

默认值:false

batchingEnabled

是否启用生产者的消息批处理。消息根据以下属性(在本列表中的接下来的三项中描述)批量到一条消息中:'batchSize'、batchBufferLimitbatchTimeout。有关详细信息,请参阅批量处理。另请参阅接收批量消息

默认值:false

batchSize

启用批量处理时要缓冲的消息数量。

默认值:100

batchBufferLimit

启用批量处理时的最大缓冲区大小。

默认值:10000

batchTimeout

启用批量处理时的批量超时。

默认值:5000

bindingRoutingKey

将队列绑定到交换机的路由键(如果bindQueuetrue)。可以是多个键 - 请参见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。仅当autoBindDlqtrue时才相关。仅当提供requiredGroups时才适用,并且仅适用于这些组。

默认值:'prefix+DLX'

deadLetterExchangeType

分配给队列的 DLX 类型。仅当autoBindDlqtrue 时才相关。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:'direct'

deadLetterRoutingKey

分配给队列的死信路由键。仅当autoBindDlqtrue 时才相关。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:destination

declareDlx

是否为目标声明死信交换机。仅当autoBindDlqtrue 时才相关。如果您已预配置 DLX,则将其设置为false。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:true

declareExchange

是否为目标声明交换机。

默认值:true

delayExpression

用于计算要应用于消息的延迟 (x-delay 头) 的 SpEL 表达式。如果交换机不是延迟消息交换机,则它无效。

默认值:不设置x-delay 头。

delayedExchange

是否将交换机声明为延迟消息交换机。需要代理上的延迟消息交换机插件。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 时才适用,并且仅适用于这些组。

默认值:无过期时间

dlqLazy

使用x-queue-mode=lazy参数声明死信队列。参见“延迟队列”。考虑使用策略而不是此设置,因为使用策略允许在不删除队列的情况下更改设置。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

dlqMaxLength

死信队列中的最大消息数。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:无限制

dlqMaxLengthBytes

来自所有消息的死信队列中的最大总字节数。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:无限制

dlqMaxPriority

死信队列中消息的最大优先级 (0-255) 仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:none

dlqQuorum.deliveryLimit

quorum.enabled=true时,设置投递限制,超过此限制后,消息将被丢弃或转为死信。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:无 - 将应用代理默认值。

dlqQuorum.enabled

为真时,创建仲裁死信队列而不是经典队列。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:false

dlqQuorum.initialGroupSize

quorum.enabled=true时,设置初始仲裁大小。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:无 - 将应用代理默认值。

dlqSingleActiveConsumer

设置为 true 以将x-single-active-consumer队列属性设置为 true。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:false

dlqTtl

声明时应用于死信队列的默认生存时间(以毫秒为单位)。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:无限制

exchangeAutoDelete

如果declareExchangetrue,则交换机是否应自动删除(在最后一个队列删除后将其移除)。

默认值:true

exchangeDurable

如果declareExchangetrue,则交换机是否应持久化(在代理重启后仍然存在)。

默认值:true

exchangeType

交换机类型:对于非分区目标,为directfanoutheaderstopic;对于分区目标,为directheaderstopic

默认值: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_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

为真时,创建仲裁队列而不是经典队列。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:false

quorum.initialGroupSize

quorum.enabled=true时,设置初始仲裁大小。仅当提供requiredGroups 时才适用,并且仅适用于这些组。

默认值:无 - 将应用代理默认值。

routingKeyExpression

用于确定发布消息时要使用的路由键的 SpEL 表达式。对于固定的路由键,请使用routingKey

默认值:对于分区目标,为destinationdestination-<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 之前)等本身不支持标头的传输)的扩展内部协议的一部分。