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

用於將佇列繫結到交換機的路由鍵(如果 bindQueuetrue)。可以是多個鍵 - 請參閱 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。僅當 autoBindDlqtrue 時才相關。

預設值: 'prefix+DLX'

deadLetterExchangeType

分配給佇列的 DLX 型別。僅當 autoBindDlqtrue 時才相關。

預設值: 'direct'

deadLetterRoutingKey

分配給佇列的死信路由鍵。僅當 autoBindDlqtrue 時才相關。

預設值: destination

declareDlx

是否宣告目標的死信交換機。僅當 autoBindDlqtrue 時才相關。如果您有預配置的 DLX,請將其設定為 false

預設值:true

declareExchange

是否宣告目標的交換機。

預設值:true

delayedExchange

是否將交換機宣告為 延遲訊息交換機。需要在代理上安裝延遲訊息交換機外掛。x-delayed-type 引數設定為 exchangeType

預設值:false

dlqBindingArguments

繫結 dlq 到死信交換機時應用的引數;與 headers deadLetterExchangeType 一起使用,以指定要匹配的頭。例如 …​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

dlqMaxLengthdlqMaxLengthBytes 超出時採取的行動;目前為 drop-headreject-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

交換機型別: 非分割槽目標的 directfanoutheaderstopic,以及分割槽目標的 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

最大消費者數量。當 containerTypedirect 時不支援。

預設值:1

maxLength

佇列中訊息的最大數量。

預設值: 無限制

maxLengthBytes

佇列中所有訊息的總位元組數最大值。

預設值: 無限制

maxPriority

佇列中訊息的最大優先順序(0-255)。

預設值:none

missingQueuesFatal

當找不到佇列時,是否將此情況視為致命並停止監聽器容器。預設為 false,以便容器繼續嘗試從佇列消費 — 例如,當使用叢集且託管非 HA 佇列的節點已關閉時。

預設值:false

overflowBehavior

maxLengthmaxLengthBytes 超出時採取的行動;目前為 drop-headreject-publish,但請參閱 RabbitMQ 文件。

預設值:none

prefetch

預取計數。

預設值:1

prefix

新增到 destination 和佇列名稱的字首。

預設值: ""。

queueBindingArguments

繫結佇列到交換機時應用的引數;與 headers exchangeType 一起使用,以指定要匹配的頭。例如 …​queueBindingArguments.x-match=any, …​queueBindingArguments.someHeader=someValue

預設值: 空

queueDeclarationRetries

如果佇列丟失,嘗試從佇列消費的重試次數。僅當 missingQueuesFataltrue 時才相關。否則,容器會無限期地重試。當 containerTypedirect 時不支援。

預設值: 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

當重試被停用或 republishToDlqfalse 時,交付失敗是否應重新入隊。

預設值:false

republishDeliveryMode

republishToDlqtrue 時,指定重新發布訊息的交付模式。

預設值: DeliveryMode.PERSISTENT

republishToDlq

預設情況下,重試耗盡後失敗的訊息將被拒絕。如果配置了死信佇列 (DLQ),RabbitMQ 會將失敗的訊息(未更改)路由到 DLQ。如果設定為 true,則 binder 會將失敗的訊息重新發布到 DLQ,並附加額外的頭,包括異常訊息和最終失敗原因的堆疊跟蹤。另請參閱 frameMaxHeadroom 屬性

預設值: true

singleActiveConsumer

設定為 true 以將 x-single-active-consumer 佇列屬性設定為 true。

預設值:false

transacted

是否使用事務通道。

預設值:false

ttl

宣告佇列時應用的預設存活時間(以毫秒為單位)。

預設值: 無限制

txSize

ACK 之間的交付次數。當 containerTypedirect 時不支援。

預設值:1

© . This site is unofficial and not affiliated with VMware.