RabbitMQ 消費者屬性
以下屬性僅適用於 Rabbit 消費者,並且必須以 spring.cloud.stream.rabbit.bindings.<channelName>.consumer. 為字首。
然而,如果需要將同一組屬性應用於大多數繫結以避免重複,Spring Cloud Stream 支援以 spring.cloud.stream.rabbit.default.<property>=<value> 的格式為所有通道設定值。
此外,請記住,繫結特定屬性將覆蓋預設值中的等效屬性。
- acknowledgeMode
-
確認模式。
預設值:
AUTO。 - anonymousGroupPrefix
-
當繫結沒有
group屬性時,一個匿名的、自動刪除的佇列會繫結到目標交換機。此類佇列的預設命名策略導致佇列名為anonymous.<UUID 的 base64 表示>。設定此屬性以將字首更改為非預設值。預設值:
anonymous.。 - autoBindDlq
-
是否自動宣告 DLQ 並將其繫結到 binder DLX。
預設值:
false。 - bindingRoutingKey
-
用於將佇列繫結到交換機的路由鍵(如果
bindQueue為true)。可以是多個鍵 - 請參閱bindingRoutingKeyDelimiter。對於分割槽目標,-<instanceIndex>會附加到每個鍵。預設值:
#。 - bindingRoutingKeyDelimiter
-
當此值不為 null 時,'bindingRoutingKey' 被視為由該值分隔的鍵列表;通常使用逗號。
預設值:
null。 - bindQueue
-
是否宣告佇列並將其繫結到目標交換機。如果您已設定自己的基礎設施並已預先建立和繫結佇列,請將其設定為
false。預設值:
true。 - consumerTagPrefix
-
用於建立消費者標籤;將附加
#n,其中n為每個建立的消費者遞增。示例:${spring.application.name}-${spring.cloud.stream.bindings.input.group}-${spring.cloud.stream.instance-index}。預設值: 無 - 代理將生成隨機的消費者標籤。
- containerType
-
選擇要使用的監聽器容器型別。有關更多資訊,請參閱 Spring AMQP 文件中的選擇容器。另請參閱 [rabbitmq-stream]。
預設值:
simple - deadLetterQueueName
-
DLQ 的名稱
預設值:
prefix+destination.dlq - deadLetterExchange
-
分配給佇列的 DLX。僅當
autoBindDlq為true時才相關。預設值: 'prefix+DLX'
- deadLetterExchangeType
-
分配給佇列的 DLX 型別。僅當
autoBindDlq為true時才相關。預設值: 'direct'
- deadLetterRoutingKey
-
分配給佇列的死信路由鍵。僅當
autoBindDlq為true時才相關。預設值:
destination - declareDlx
-
是否宣告目標的死信交換機。僅當
autoBindDlq為true時才相關。如果您有預配置的 DLX,請將其設定為false。預設值:
true。 - declareExchange
-
是否宣告目標的交換機。
預設值:
true。 - delayedExchange
-
是否將交換機宣告為
延遲訊息交換機。需要在代理上安裝延遲訊息交換機外掛。x-delayed-type引數設定為exchangeType。預設值:
false。 - dlqBindingArguments
-
繫結 dlq 到死信交換機時應用的引數;與
headersdeadLetterExchangeType一起使用,以指定要匹配的頭。例如…dlqBindingArguments.x-match=any,…dlqBindingArguments.someHeader=someValue。預設值: 空
- dlqDeadLetterExchange
-
如果聲明瞭 DLQ,則為分配給該佇列的 DLX。
預設值:
none - dlqDeadLetterRoutingKey
-
如果聲明瞭 DLQ,則為分配給該佇列的死信路由鍵。
預設值:
none - dlqExpires
-
未使用的死信佇列被刪除前的時間(以毫秒為單位)。
預設值:
無過期 - dlqLazy
-
使用
x-queue-mode=lazy引數宣告死信佇列。請參閱 “Lazy Queues”。考慮使用策略而不是此設定,因為使用策略允許在不刪除佇列的情況下更改設定。預設值:
false。 - dlqMaxLength
-
死信佇列中訊息的最大數量。
預設值:
無限制 - dlqMaxLengthBytes
-
死信佇列中所有訊息的總位元組數最大值。
預設值:
無限制 - dlqMaxPriority
-
死信佇列中訊息的最大優先順序(0-255)。
預設值:
none - dlqOverflowBehavior
-
當
dlqMaxLength或dlqMaxLengthBytes超出時採取的行動;目前為drop-head或reject-publish,但請參閱 RabbitMQ 文件。預設值:
none - dlqQuorum.deliveryLimit
-
當
quorum.enabled=true時,設定一個交付限制,在此限制之後訊息將被丟棄或進入死信佇列。預設值: 無 - 將應用代理預設值。
- dlqQuorum.enabled
-
當為 true 時,建立仲裁死信佇列而不是經典佇列。
預設值:false
- dlqQuorum.initialGroupSize
-
當
quorum.enabled=true時,設定初始仲裁大小。預設值: 無 - 將應用代理預設值。
- dlqSingleActiveConsumer
-
設定為 true 以將
x-single-active-consumer佇列屬性設定為 true。預設值:
false - dlqTtl
-
宣告死信佇列時應用的預設存活時間(以毫秒為單位)。
預設值:
無限制 - durableSubscription
-
訂閱是否應持久。僅當
group也設定時才有效。預設值:
true。 - exchangeAutoDelete
-
如果
declareExchange為 true,則交換機是否應自動刪除(即,在最後一個佇列被刪除後刪除)。預設值:
true。 - exchangeDurable
-
如果
declareExchange為 true,則交換機是否應持久(即,在代理重啟後仍然存在)。預設值:
true。 - exchangeType
-
交換機型別: 非分割槽目標的
direct、fanout、headers或topic,以及分割槽目標的direct、headers 或topic。預設值:
topic。 - exclusive
-
是否建立獨佔消費者。當此值為
true時,併發數應為 1。通常用於需要嚴格排序但允許熱備例項在故障後接管的情況。請參閱recoveryInterval,它控制備用例項嘗試消費的頻率。當使用 RabbitMQ 3.8 或更高版本時,請考慮使用singleActiveConsumer。預設值:
false。 - expires
-
未使用的佇列被刪除前的時間(以毫秒為單位)。
預設值:
無過期 - failedDeclarationRetryInterval
-
如果佇列丟失,嘗試從佇列消費的間隔(以毫秒為單位)。
預設值: 5000
- frameMaxHeadroom
-
在將堆疊跟蹤新增到 DLQ 訊息頭時,為其他頭保留的位元組數。所有頭必須在代理上配置的
frame_max大小範圍內。堆疊跟蹤可能很大;如果大小加上此屬性超出frame_max,則堆疊跟蹤將被截斷。將寫入 WARN 日誌;考慮增加frame_max或透過捕獲異常並丟擲堆疊跟蹤較小的異常來減少堆疊跟蹤。預設值: 20000
- headerPatterns
-
用於從入站訊息對映頭的模式。
預設值:
['*'](所有頭)。 - lazy
-
使用
x-queue-mode=lazy引數宣告佇列。請參閱 “Lazy Queues”。考慮使用策略而不是此設定,因為使用策略允許在不刪除佇列的情況下更改設定。預設值:
false。 - maxConcurrency
-
最大消費者數量。當
containerType為direct時不支援。預設值:
1。 - maxLength
-
佇列中訊息的最大數量。
預設值:
無限制 - maxLengthBytes
-
佇列中所有訊息的總位元組數最大值。
預設值:
無限制 - maxPriority
-
佇列中訊息的最大優先順序(0-255)。
預設值:
none - missingQueuesFatal
-
當找不到佇列時,是否將此情況視為致命並停止監聽器容器。預設為
false,以便容器繼續嘗試從佇列消費 — 例如,當使用叢集且託管非 HA 佇列的節點已關閉時。預設值:
false - overflowBehavior
-
當
maxLength或maxLengthBytes超出時採取的行動;目前為drop-head或reject-publish,但請參閱 RabbitMQ 文件。預設值:
none - prefetch
-
預取計數。
預設值:
1。 - prefix
-
新增到
destination和佇列名稱的字首。預設值: ""。
- queueBindingArguments
-
繫結佇列到交換機時應用的引數;與
headersexchangeType一起使用,以指定要匹配的頭。例如…queueBindingArguments.x-match=any,…queueBindingArguments.someHeader=someValue。預設值: 空
- queueDeclarationRetries
-
如果佇列丟失,嘗試從佇列消費的重試次數。僅當
missingQueuesFatal為true時才相關。否則,容器會無限期地重試。當containerType為direct時不支援。預設值:
3 - queueNameGroupOnly
-
當為 true 時,從名稱等於
group的佇列消費。否則佇列名稱為destination.group。例如,當使用 Spring Cloud Stream 從現有 RabbitMQ 佇列消費時,這很有用。預設值: false。
- quorum.deliveryLimit
-
當
quorum.enabled=true時,設定一個交付限制,在此限制之後訊息將被丟棄或進入死信佇列。預設值: 無 - 將應用代理預設值。
- quorum.enabled
-
當為 true 時,建立仲裁佇列而不是經典佇列。
預設值:false
- quorum.initialGroupSize
-
當
quorum.enabled=true時,設定初始仲裁大小。預設值: 無 - 將應用代理預設值。
- recoveryInterval
-
連線恢復嘗試之間的間隔,以毫秒為單位。
預設值:
5000。 - requeueRejected
-
當重試被停用或
republishToDlq為false時,交付失敗是否應重新入隊。預設值:
false。
- republishDeliveryMode
-
當
republishToDlq為true時,指定重新發布訊息的交付模式。預設值:
DeliveryMode.PERSISTENT - republishToDlq
-
預設情況下,重試耗盡後失敗的訊息將被拒絕。如果配置了死信佇列 (DLQ),RabbitMQ 會將失敗的訊息(未更改)路由到 DLQ。如果設定為
true,則 binder 會將失敗的訊息重新發布到 DLQ,並附加額外的頭,包括異常訊息和最終失敗原因的堆疊跟蹤。另請參閱 frameMaxHeadroom 屬性。預設值:
true - singleActiveConsumer
-
設定為 true 以將
x-single-active-consumer佇列屬性設定為 true。預設值:
false - transacted
-
是否使用事務通道。
預設值:
false。 - ttl
-
宣告佇列時應用的預設存活時間(以毫秒為單位)。
預設值:
無限制 - txSize
-
ACK 之間的交付次數。當
containerType為direct時不支援。預設值:
1。