|
对于最新稳定版本,请使用spring-cloud-stream 5.0.1! |
RabbitMQ 生产者属性
Rabbit 生成器特有的以下属性可用,并且必须以“0”开头。
但是,如果需要将同一组属性应用于大多数绑定,为了防止重复,Spring Cloud Stream 支持在格式为 spring.cloud.stream.rabbit.default.<property>=<value> 的所有通道上设置值。
也请记住,绑定特定属性会将其默认值覆盖。
- altermateExchange.binding.queue
-
如果交换机不存在,且提供了值为 0,则将此队列绑定到备用交换机。 配置了无参数的简单持久化队列;如需更复杂的配置,必须自行配置并绑定队列。
默认值为
null。如果交换机不存在,并且提供了name和queue,则使用此路由密钥将队列绑定到备用交换机。默认值: <代码>0 (对于默认交换 <代码>1 备用)
- alternateExchange.exists
-
是否轮换交换机存在,或者需要进行预配。
默认值:
false - alternateExchange.type
-
如果备用交换机尚不存在,则要配置的交换机类型。
默认值:
topic - alternateExchange.name
-
配置目标交换机的备用交换机。
默认值:
null - 自动绑定死信队列
-
是否自动声明死信队列(DLQ)并将其绑定到绑定器的死信交换(DLX)。
默认值:
false。 - 批量处理是否启用
-
生产者是否启用消息批处理。
根据以下属性(在此列表中的接下来三个条目中描述)batchSize,batchBufferLimit和batchTimeout,将消息进行批处理为一条消息。
批量处理获取更多信息。
另请参阅接收批处理的消息。默认值:
false。 - 批处理大小
-
启用批处理时,缓冲的消息数量。
默认值:
100。 - 批次缓冲限制
-
批量处理启用时的最大缓冲区大小。
默认值:
10000。 - 批量超时
-
启用批处理时的批处理超时时间。
默认值:
5000。 - 绑定路由键
-
绑定队列到交换机时使用的路由键(如果
bindQueue是true)。 可以有多个键 - 参见bindingRoutingKeyDelimiter。 对于分区目的地,每个键都会追加上-n。 仅在提供requiredGroups时适用,并且仅对这些组有效。默认值:
#。 - 绑定路由键分隔符
-
当此值不为 null 时,'bindingRoutingKey' 被认为是由该值分隔的键列表;通常使用逗号作为分隔符。 仅在提供
requiredGroups个值时适用,并且只适用于这些组。默认值:
null。 - 绑定队列
-
是否声明队列并将其绑定到目标交换机。如果已设置好自己的基础设施并且先前已创建并绑定了队列,则将其设置为
false。仅在提供requiredGroups时适用,然后仅适用于这些组。默认值:
true。 - 压缩
-
数据发送时是否应进行压缩。
默认值:
false。 - 确认消息通道
-
当
errorChannelEnabled为真时,表示要发送正向交付确认(即发布者确认)的通道。
如果该通道不存在,则会使用此名称注册一个DirectChannel。
必须配置连接工厂以启用发布者确认。
与useConfirmHeader互斥。默认:
nullChannel(确认被丢弃)。 - 死信队列名称
-
死信队列的名称仅在提供
requiredGroups时适用,且仅适用于这些组。默认值:
prefix+destination.dlq - 死信交换
-
将DLX分配给队列。
仅在autoBindDlq为true时相关。
仅当提供requiredGroups时适用,且仅对这些组有效。默认值:'前缀+死信交换'
- 死信交换机类型
-
分配给队列的DLX类型。仅当
autoBindDlq为true时相关。
只有在提供requiredGroups时才适用,然后仅适用于这些组。默认值:'direct'
- 死信路由键
-
分配给队列的死信路由密钥。 仅在
autoBindDlq是true时相关。 只有当提供requiredGroups时才适用,然后只适用于这些组。默认值:
destination - 声明死信交换器
-
是否为目的地声明死信交换。 仅在
autoBindDlq是true时相关。 如果已配置DLX,请设置为false。 仅当提供了requiredGroups时适用,且仅适用于这些组。默认值:
true。 - 声明交换机
-
是否为目的地声明交换机。
默认值:
true。 - 延迟表达式
-
一个SpEL表达式,用于评估要应用到消息的延迟时间(
x-delay标题)。如果交换不是延迟消息交换,则此操作无效。默认情况下:未设置
x-delay标题。 - 延迟交换
-
是否将交换声明为
Delayed Message Exchange。
需要在代理上安装延迟消息交换插件。
将x-delayed-type参数设置为exchangeType。默认值:
false。 - 配送方式
-
交付模式。
默认值:
PERSISTENT。 - 延迟队列绑定参数
-
绑定死信队列(DLQ)到死信交换时应用的参数;与
headersdeadLetterExchangeType一起使用,用于指定要匹配的头部信息。
例如…dlqBindingArguments.x-match=any,…dlqBindingArguments.someHeader=someValue。
仅在提供requiredGroups时适用,并且只对这些组有效。默认:空
- 死信队列死信交换机
-
当声明死信队列(DLQ)时,会分配一个死信交换器(DLX)给该队列。
仅在提供了requiredGroups的情况下适用,并且仅适用于这些组。默认值:
none - 死信队列死信路由键
-
声明死信队列 (DLQ) 后,将一个死信路由键分配给该队列。 仅在提供
requiredGroups时适用,并且仅对这些组有效。默认值:
none - 延迟队列到期
-
闲置的死信队列在被删除之前保留的时间(以毫秒为单位)。仅当提供
requiredGroups时适用,并且仅对这些组有效。默认值:
no expiration - 懒加载
-
声明死信队列时使用
x-queue-mode=lazy参数。 参见 “惰性队列”。 建议使用策略而不是此设置,因为使用策略可以在不删除队列的情况下更改设置。 仅在提供requiredGroups个参数时适用,并且仅对这些组有效。 - 最大dlq长度
-
死信队列中的最大消息数。 仅在提供
requiredGroups时适用,并且仅对这些组有效。默认值:
no limit - 最大字节数
-
死信队列中所有消息的最大总字节数。仅在提供
requiredGroups时适用,且仅对这些组有效。默认值:
no limit - 最大优先级队列
-
死信队列中消息的最大优先级(0-255)
仅在提供requiredGroups时适用,且仅对这些组有效。默认值:
none - dlqQuorum.deliveryLimit
-
当
quorum.enabled=true时,设置一个投递限制,超过该限制后消息将被丢弃或转入死信队列。仅在提供requiredGroups时生效,并且仅适用于这些组。默认:无 - 将应用代理程序默认设置。
- dlqQuorum.enabled
-
当为 true 时,创建一个法定人数死信队列而不是经典队列。
仅在提供requiredGroups时适用,并且仅对这些组有效。(默认值:false)
- dlqQuorum.initialGroupSize
-
当
quorum.enabled=true时,设置初始多数大小。
仅在提供requiredGroups时适用,并且仅适用于这些组。默认:无 - 将应用代理程序默认设置。
- 单个活动消费者
-
设置为 true 将
x-single-active-consumer队列属性设为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 - 最大长度字节
-
队列中所有消息的最大总字节数。仅在提供
requiredGroups时适用,并且仅适用于这些组。默认值:
no limit - 最高严重程度
-
队列中消息的最大优先级(0-255)。仅当提供
requiredGroups时适用,并且仅对这些组有效。默认值:
none - 前缀
-
要添加到
destination交换机名称前的前缀。默认值:""。
- 生产者类型
-
生产者的类型。
-
AMQP经典队列和法定人数队列的AMQP客户端 -
STREAM_SYNCRabbitMQ Streams 插件客户端,阻塞直到收到确认 -
STREAM_ASYNCRabbitMQ 流插件客户端,不阻塞默认值:""。
-
- 队列绑定参数
-
绑定队列到交换时应用的参数;用于
headersexchangeType指定要匹配的标头。
例如…queueBindingArguments.x-match=any,…queueBindingArguments.someHeader=someValue。
仅在提供requiredGroups时适用,且仅适用于这些组。默认:空
- 仅队列名组
-
当为
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时适用,并且仅适用于这些组。默认:无 - 将应用代理程序默认设置。
- 路由键表达式
-
用于确定发布消息时使用的路由键的SpEL表达式。对于固定路由键,请使用
routingKey。默认值:
destination或destination-<partition>(针对分区目的地)。 - routingKey
-
一个定义了发布消息时使用的固定路由密钥的字符串。
默认:查看
routingKeyExpression - singleActiveConsumer
-
设置为 true 将
x-single-active-consumer队列属性设为true。仅当提供requiredGroups时适用,且仅适用于这些组。默认值:
false - 事务性
-
是否使用事务通道。
默认值:
false。 - TTL
-
声明队列时要应用的默认存活时间(以毫秒为单位)。仅当提供
requiredGroups时才会对这些组生效。默认值:
no limit - 使用确认标题
-
参见 发布者确认。
与confirmAckChannel互斥。在RabbitMQ的情况下,内容类型标头可以通过外部应用程序进行设置。</p><p>Spring Cloud Stream将其作为用于任何类型的传输的扩展内部协议的一部分来支持——包括Kafka(0.11之前版本)等不原生支持标头的传输方式。