RabbitMQ 生产者属性
以下属性仅适用于 Rabbit 生产者,且必须以 spring.cloud.stream.rabbit.bindings.<channelName>.producer. 为前缀。
然而,如果同一组属性需要应用于大多数绑定,为了避免重复,Spring Cloud Stream 支持为所有通道设置值,格式为 spring.cloud.stream.rabbit.default.producer.<property>=<value>。
另外,请注意,绑定特定属性会覆盖默认设置中的等效属性。
altermateExchange.binding.queue
如果交换器尚不存在,且提供了 name 参数,则将此队列绑定到备用交换器。系统将配置一个无参数的简单持久队列;如需更复杂的配置,您必须自行配置并绑定队列。
默认值:null alternateExchange.binding.routingKey 如果交换器尚不存在,并且提供了 name 和 queue,则使用此路由键将队列绑定到备用交换器。
默认值:#(用于默认的 topic 备用交换器)
alternateExchange.exists
备用交换是否存在,或者是否需要被配置。
默认值:false
alternateExchange.type
如果备用交换器尚不存在,则指定要配置的交换器类型。
默认值:topic
alternateExchange.name
在目标交换机上配置备用交换机。
默认值:null
autoBindDlq
是否自动声明死信队列并将其绑定到绑定器的死信交换机。
默认值:false。
batchingEnabled
默认值:false。
batchSize
启用批处理时缓冲的消息数量。
默认值:100。
batchBufferLimit
启用批处理时的最大缓冲区大小。
默认值:10000。
batchTimeout
启用批处理时的批处理超时时间。
默认值:5000。
bindingRoutingKey
用于将队列绑定到交换机的路由键(如果 bindQueue 为 true)。可以是多个键 - 请参阅 bindingRoutingKeyDelimiter。对于分区目标,每个键会附加 -n。仅当提供了 requiredGroups 时适用,且仅适用于这些组。
默认值:#。
bindingRoutingKeyDelimiter
当此值不为空时,'bindingRoutingKey' 将被视为由该值分隔的键列表;通常使用逗号作为分隔符。仅当提供了 requiredGroups 时适用,并且仅适用于这些组。
默认值:null。
bindQueue
是否声明队列并将其绑定到目标交换机。如果您已设置自己的基础设施并已预先创建并绑定了队列,请将其设置为 false。仅当提供了 requiredGroups 时适用,且仅适用于这些组。
默认值:true。
压缩
发送数据时是否应进行压缩。
默认值: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
是否将交换机声明为延迟消息交换机。需要在代理上安装延迟消息交换插件。x-delayed-type参数设置为exchangeType。
默认值:false。
deliveryMode
交付模式。
默认值:PERSISTENT。
dlqBindingArguments
绑定死信队列到死信交换机时应用的参数;与 headers deadLetterExchangeType 结合使用,用于指定匹配的头部信息。例如 …dlqBindingArguments.x-match=any、…dlqBindingArguments.someHeader=someValue。仅当提供了 requiredGroups 时适用,且仅适用于这些组。
默认值:空
dlqDeadLetterExchange
当声明一个死信队列时,需要为其分配一个死信交换机。仅当提供了 requiredGroups 且仅适用于这些组时,此设置才生效。
默认值:none
dlqDeadLetterRoutingKey
当声明死信队列时,需要为该队列分配一个死信路由键。仅当提供 requiredGroups 时适用,且仅适用于这些组。
默认值:none
dlqExpires
未使用的死信队列在被删除前保留多长时间(以毫秒为单位)。仅当提供了 requiredGroups 时适用,且仅适用于这些组。
默认值:no expiration
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 时才适用,且仅适用于这些组。
默认值: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_SYNCRabbitMQ 流插件客户端,阻塞直到收到确认 -
STREAM_ASYNCRabbitMQ 流插件客户端,非阻塞默认值:""。
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
已处理
是否使用事务通道。
默认值:false。
ttl
队列声明时应用的默认生存时间(以毫秒为单位)。仅当提供 requiredGroups 时适用,且仅适用于这些组。
默认值:无限制
useConfirmHeader
请参阅发布者确认。与 confirmAckChannel 互斥。
对于 RabbitMQ 而言,内容类型头部可以由外部应用程序设置。Spring Cloud Stream 将它们作为扩展内部协议的一部分来支持,该协议可用于任何类型的传输——包括那些本身不支持头部的传输,例如 Kafka(0.11 版本之前)。