RabbitMQ 生產者屬性
以下屬性僅適用於 Rabbit 生產者,並且必須以 spring.cloud.stream.rabbit.bindings.<channelName>.producer. 為字首。
然而,如果需要將相同的屬性集應用於大多數繫結,為了避免重複,Spring Cloud Stream 支援以 spring.cloud.stream.rabbit.default.<property>=<value> 的格式為所有通道設定值。
此外,請記住,特定於繫結的屬性將覆蓋其在預設設定中的等效屬性。
- alternateExchange.binding.queue
-
如果交換機尚不存在,並且提供了
name,則將此佇列繫結到備用交換機。將配置一個簡單的、持久的、不帶引數的佇列;如果需要更復雜的配置,您必須自行配置和繫結佇列。預設值:
nullalternateExchange.binding.routingKey 如果交換機尚不存在,並且提供了name和queue,則使用此路由鍵將佇列繫結到備用交換機。預設值:
#(對於預設的topic備用交換機) - alternateExchange.exists
-
備用交換機是否存在,或者是否需要配置。
預設值:
false - alternateExchange.type
-
如果備用交換機尚不存在,要配置的交換機型別。
預設值:
topic - alternateExchange.name
-
在目標交換機上配置備用交換機。
預設值:
null - autoBindDlq
-
是否自動宣告死信佇列 (DLQ) 並將其繫結到繫結器死信交換機 (DLX)。
預設值:
false。 - batchingEnabled
-
是否啟用生產者訊息批處理。訊息根據以下屬性(本列表後三項所述):'batchSize'、
batchBufferLimit和batchTimeout批處理為一條訊息。有關更多資訊,請參閱 批處理。另請參閱 接收批處理訊息。預設值:
false。 - batchSize
-
啟用批處理時要緩衝的訊息數量。
預設值:
100。 - batchBufferLimit
-
啟用批處理時的最大緩衝區大小。
預設值:
10000。 - batchTimeout
-
啟用批處理時的批處理超時。
預設值:
5000。 - bindingRoutingKey
-
將佇列繫結到交換機時使用的路由鍵(如果
bindQueue為true)。可以是多個鍵 - 請參閱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。僅當
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
-
一個 SpEL 表示式,用於評估應用於訊息的延遲(
x-delay頭部)。如果交換機不是延遲訊息交換機,則無效。預設值:未設定
x-delay頭部。 - delayedExchange
-
是否將交換機宣告為
延遲訊息交換機。需要代理上的延遲訊息交換機外掛。x-delayed-type引數設定為exchangeType。預設值:
false。 - deliveryMode
-
投遞模式。
預設值:
PERSISTENT。 - dlqBindingArguments
-
將 dlq 繫結到死信交換機時應用的引數;與
headersdeadLetterExchangeType一起使用以指定要匹配的頭部。例如…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
-
當為 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時才適用,並且僅適用於這些組。預設值:
無過期時間 - 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
-
將佇列繫結到交換機時應用的引數;與
headersexchangeType一起使用以指定要匹配的頭部。例如…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 - transacted
-
是否使用事務通道。
預設值:
false。 - ttl
-
宣告佇列時,預設的訊息存活時間(毫秒)。僅當提供了
requiredGroups時才適用,並且僅適用於這些組。預設值:
無限制 - useConfirmHeader
-
請參閱 釋出者確認。與
confirmAckChannel互斥。在 RabbitMQ 的情況下,內容型別頭部可以由外部應用程式設定。Spring Cloud Stream 將它們作為用於任何型別傳輸(包括 Kafka (0.11 之前) 等原生不支援頭部的傳輸)的擴充套件內部協議的一部分來支援。