对于最新的稳定版本,请使用 spring-cloud-stream 4.3.0! |
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.类型
-
如果备用交换尚不存在,则要预配的交换类型。
违约:
topic
- alternateExchange.name
-
在目标交换机上配置备用交换机。
违约:
null
- 自动绑定Dlq
-
是否自动声明 DLQ 并将其绑定到绑定程序 DLX。
违约:
false
. - 批处理已启用
-
是否由生产者启用消息批处理。 消息根据以下属性批处理为一条消息(在此列表中的接下来的三个条目中描述): 'batchSize',
batchBufferLimit
和batchTimeout
. 有关详细信息,请参阅批处理。 另请参阅接收批处理消息。违约:
false
. - batch大小
-
启用批处理时要缓冲的消息数。
违约:
100
. - batch缓冲限制
-
启用批处理时的最大缓冲区大小。
违约:
10000
. - batchTimeout
-
启用批处理时的批处理超时。
违约:
5000
. - bindingRoutingKey
-
用于将队列绑定到交换的路由密钥(如果
bindQueue
是true
). 可以是多个键 - 请参阅bindingRoutingKeyDelimiter
. 对于分区目标,-n
附加到每个键。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。违约:。
#
- bindingRoutingKeyDelimiter
-
当它不为空时,'bindingRoutingKey' 被视为由此值分隔的键列表;通常使用逗号。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
null
. - 绑定队列
-
是否声明队列并将其绑定到目标交换。 将其设置为
false
如果您已经设置了自己的基础设施,并且之前已经创建并绑定了队列。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。违约:
true
. - 压缩
-
发送时是否应压缩数据。
违约:
false
. - 确认AckChannel
-
什么时候
errorChannelEnabled
为 true,则是向其发送正面投放确认(又称发布者确认)的通道。 如果通道不存在,则DirectChannel
以此名称注册。 必须将连接工厂配置为启用发布者确认。 相互排斥useConfirmHeader
.违约:
nullChannel
(acks 被丢弃)。 - deadLetter队列名称
-
DLQ 的名称 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
prefix+destination.dlq
- 死信交换
-
要分配给队列的 DLX。 仅在以下情况下相关
autoBindDlq
是true
. 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。默认值:“前缀+DLX”
- deadLetter交换类型
-
要分配给队列的 DLX 类型。 仅当
autoBindDlq
是true
. 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。默认值:“直接”
- deadLetterRouting键
-
要分配给队列的死信路由键。 仅在以下情况下相关
autoBindDlq
是true
. 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。违约:
destination
- 声明Dlx
-
是否为目的地申报死信交换。 仅当
autoBindDlq
是true
. 设置为false
如果您有预配置的 DLX。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。违约:
true
. - 声明交换
-
是否声明目标的交换。
违约:
true
. - 延迟表达式
-
用于评估要应用于消息的延迟的 SpEL 表达式 (
x-delay
标头)。 如果交换不是延迟消息交换,则无效。默认值:否
x-delay
header 已设置。 - 延迟交换
-
是否将交易所声明为
Delayed Message Exchange
. 需要代理上的延迟消息交换插件。 这x-delayed-type
参数设置为exchangeType
.违约:
false
. - 交付模式
-
交付模式。
违约:
PERSISTENT
. - dlqBinding参数
-
将 dlq 绑定到死信交换时应用的参数;与
headers
deadLetterExchangeType
以指定要匹配的标头。 例如…dlqBindingArguments.x-match=any
,…dlqBindingArguments.someHeader=someValue
. 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。默认值:空
- dlq死信交换
-
声明 DLQ 时,要分配给该队列的 DLX。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
none
- dlqDeadLetterRoutingKey
-
声明 DLQ 时,要分配给该队列的死信路由密钥。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
none
- dlq过期
-
删除未使用的死信队列之前多长时间(以毫秒为单位)。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
no expiration
- dlq懒惰
-
使用
x-queue-mode=lazy
论点。 请参阅“延迟队列”。 请考虑使用策略而不是此设置,因为使用策略允许在不删除队列的情况下更改设置。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。 - dlq最大长度
-
死信队列中的最大消息数。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
no limit
- dlqMaxLength字节
-
所有消息的死信队列中的最大总字节数。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
no limit
- dlqMax优先级
-
死信队列中消息的最大优先级 (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
queue 属性设置为 true。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。违约:
false
- dlqTtl
-
声明时应用于死信队列的默认生存时间(以毫秒为单位)。仅当以下情况适用
requiredGroups
提供,然后仅提供给这些组。违约:
no limit
- 交易所自动删除
-
如果
declareExchange
是true
,交换是否应自动删除(在删除最后一个队列后将其删除)。违约:
true
. - 交换耐用
-
如果
declareExchange
是true
,交易所是否应该持久(在代理重启后幸存)。违约:
true
. - 交换类型
-
交易所类型:
direct
,fanout
,headers
或topic
对于未分区的目标和direct
,headers
或topic
用于分区目标。违约:
topic
. - 到期
-
删除未使用的队列之前多长时间(以毫秒为单位)。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
no expiration
- headerPatterns
-
要映射到出站邮件的标头的模式。
默认值:(所有标头)。
['*']
- 懒惰
-
使用
x-queue-mode=lazy
论点。 请参阅“延迟队列”。 请考虑使用策略而不是此设置,因为使用策略允许在不删除队列的情况下更改设置。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。违约:
false
. - 最大长度
-
队列中的最大消息数。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
no limit
- maxLength字节
-
队列中所有消息的最大总字节数。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
no limit
- 最大优先级
-
队列中消息的最大优先级 (0-255)。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
none
- 前缀
-
要添加到
destination
交换。默认值:“”。
- 生产者类型
-
生产者的类型。
-
AMQP
用于经典队列和仲裁队列的 AMQP 客户端 -
STREAM_SYNC
RabbitMQ Streams 插件客户端,阻塞直到收到确认 -
STREAM_ASYNC
RabbitMQ Streams 插件客户端,不阻塞默认值:“”。
-
- queueBindingArguments
-
将队列绑定到交换时应用的参数;与
headers
exchangeType
以指定要匹配的标头。 例如…queueBindingArguments.x-match=any
,…queueBindingArguments.someHeader=someValue
. 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。默认值:空
- 队列名称仅组
-
什么时候
true
,从名称等于group
. 否则队列名称为destination.group
. 例如,当使用 Spring Cloud Stream 从现有 RabbitMQ 队列中消费时,这很有用。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。默认值:false。
- quorum.deliveryLimit
-
什么时候
quorum.enabled=true
,设置传递限制,在此之后,邮件将被丢弃或死信。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。默认值:无 - 代理默认值将适用。
- 法定人数已启用
-
如果为 true,请创建仲裁队列而不是经典队列。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。默认值:false
- quorum.initialGroup大小
-
什么时候
quorum.enabled=true
,设置初始仲裁大小。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。默认值:无 - 代理默认值将适用。
- 路由键表达式
-
用于确定发布消息时要使用的路由键的 SpEL 表达式。 对于固定路由键,请使用
routingKey
.违约:
destination
或destination-<partition>
用于分区目标。 - 路由键
-
定义发布邮件时要使用的固定路由键的字符串。
默认值:请参阅
routingKeyExpression
- 单主动消费者
-
设置为 true 以设置
x-single-active-consumer
queue 属性设置为 true。 仅适用于以下情况requiredGroups
提供,然后仅提供给这些组。违约:
false
- 交易
-
是否使用交易通道。
违约:
false
. - TTL的
-
声明时应用于队列的默认生存时间(以毫秒为单位)。 仅适用于以下情况
requiredGroups
提供,然后仅提供给这些组。违约:
no limit
- 使用ConfirmHeader
-
请参阅发布者确认。 相互排斥
confirmAckChannel
.对于 RabbitMQ,内容类型标头可以由外部应用程序设置。 Spring Cloud Stream 将它们作为用于任何类型传输的扩展内部协议的一部分,包括本机不支持标头的传输,例如 Kafka(0.11 之前)。