| 此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 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,则将此队列绑定到备用交换。 预配一个没有参数的简单持久队列;如果需要更复杂的配置,则必须自行配置和绑定队列。违约: nullalternateExchange.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-delayheader 已设置。
- 延迟交换
- 
是否将交易所声明为 Delayed Message Exchange. 需要代理上的延迟消息交换插件。 这x-delayed-type参数设置为exchangeType.违约: false.
- 交付模式
- 
交付模式。 违约: PERSISTENT.
- dlqBinding参数
- 
将 dlq 绑定到死信交换时应用的参数;与 headersdeadLetterExchangeType以指定要匹配的标头。 例如…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-consumerqueue 属性设置为 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_SYNCRabbitMQ Streams 插件客户端,阻塞直到收到确认
- 
STREAM_ASYNCRabbitMQ Streams 插件客户端,不阻塞默认值:“”。 
 
- 
- queueBindingArguments
- 
将队列绑定到交换时应用的参数;与 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提供,然后仅提供给这些组。默认值:无 - 代理默认值将适用。 
- 法定人数已启用
- 
如果为 true,请创建仲裁队列而不是经典队列。 仅适用于以下情况 requiredGroups提供,然后仅提供给这些组。默认值:false 
- quorum.initialGroup大小
- 
什么时候 quorum.enabled=true,设置初始仲裁大小。仅在以下情况下适用requiredGroups提供,然后仅提供给这些组。默认值:无 - 代理默认值将适用。 
- 路由键表达式
- 
用于确定发布消息时要使用的路由键的 SpEL 表达式。 对于固定路由键,请使用 routingKey.违约: destination或destination-<partition>用于分区目标。
- 路由键
- 
定义发布邮件时要使用的固定路由键的字符串。 默认值:请参阅 routingKeyExpression
- 单主动消费者
- 
设置为 true 以设置 x-single-active-consumerqueue 属性设置为 true。仅当以下情况适用requiredGroups提供,然后仅提供给这些组。违约: false
- 交易
- 
是否使用交易通道。 违约: false.
- TTL的
- 
声明时应用于队列的默认生存时间(以毫秒为单位)。 仅适用于以下情况 requiredGroups提供,然后仅提供给这些组。违约: no limit
- 使用ConfirmHeader
- 
请参阅发布者确认。 相互排斥 confirmAckChannel.对于 RabbitMQ,内容类型标头可以由外部应用程序设置。Spring Cloud Stream 将它们作为用于任何类型传输的扩展内部协议的一部分,包括本机不支持标头的传输,例如 Kafka(0.11 之前)。