RabbitMQ コンシューマープロパティ
次のプロパティは Rabbit コンシューマーでのみ使用可能であり、接頭辞 spring.cloud.stream.rabbit.bindings.<channelName>.consumer.
を付ける必要があります。
ただし、同じプロパティのセットをほとんどのバインディングに適用する必要がある場合は、繰り返しを避けるために、Spring Cloud Stream はすべてのチャネルの値を spring.cloud.stream.rabbit.default.<property>=<value>
の形式で設定することをサポートしています。
また、特定のプロパティをバインドすると、デフォルトで同等のプロパティが上書きされることに注意してください。
- acknowledgeMode
確認応答モード。
デフォルト:
AUTO
.- anonymousGroupPrefix
バインディングに
group
プロパティがない場合、匿名の自動削除キューが宛先交換にバインドされます。このようなキューのデフォルトの命名戦略では、キューの名前はanonymous.<base64 representation of a UUID>
になります。プレフィックスをデフォルト以外の名前に変更するには、このプロパティを設定します。デフォルト:
anonymous.
.- autoBindDlq
DLQ を自動的に宣言し、それをバインダー 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
の場合にのみ関連します。デフォルト: 「プレフィックス +DLX」
- deadLetterExchangeType
キューに割り当てる DLX の型。
autoBindDlq
がtrue
の場合にのみ関連します。デフォルト: ' 直接 '
- deadLetterRoutingKey
キューに割り当てるデッドレタールーティングキー。
autoBindDlq
がtrue
の場合にのみ関連します。デフォルト:
destination
- declareDlx
宛先のデッドレター交換を宣言するかどうか。
autoBindDlq
がtrue
の場合にのみ関連します。DLX が事前構成されている場合は、false
に設定します。デフォルト:
true
.- declareExchange
宛先の交換を宣言するかどうか。
デフォルト:
true
.- delayedExchange
交換を
Delayed Message Exchange
として宣言するかどうか。ブローカーに遅延メッセージ交換プラグインが必要です。x-delayed-type
引数はexchangeType
に設定されます。デフォルト:
false
.- dlqBindingArguments
dlq をデッドレター交換にバインドするときに適用される引数。
headers
deadLetterExchangeType
とともに使用して、一致するヘッダーを指定します。たとえば、…dlqBindingArguments.x-match=any
、…dlqBindingArguments.someHeader=someValue
。デフォルト: 空
- dlqDeadLetterExchange
DLQ が宣言されている場合、そのキューに割り当てる DLX。
デフォルト:
none
- dlqDeadLetterRoutingKey
DLQ が宣言されている場合、そのキューに割り当てるデッドレタールーティングキー。
デフォルト:
none
- dlqExpires
未使用のデッドレターキューが削除されるまでの時間(ミリ秒単位)。
デフォルト:
no expiration
- dlqLazy
x-queue-mode=lazy
引数を使用してデッドレターキューを宣言します。“怠惰なキュー” (英語) を参照してください。ポリシーを使用すると、キューを削除せずに設定を変更できるため、この設定の代わりにポリシーを使用することを検討してください。デフォルト:
false
.- dlqMaxLength
デッドレターキュー内のメッセージの最大数。
デフォルト:
no limit
- dlqMaxLengthBytes
すべてのメッセージからのデッドレターキューの合計バイト数の最大数。
デフォルト:
no limit
- 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
宣言されたときにデッドレターキューに適用されるデフォルトの存続時間(ミリ秒単位)。
デフォルト:
no limit
- durableSubscription
サブスクリプションが永続的である必要があるかどうか。
group
も設定されている場合にのみ有効です。デフォルト:
true
.- exchangeAutoDelete
declareExchange
が true の場合、交換を自動削除する(つまり、最後のキューが削除された後に削除する)かどうか。デフォルト:
true
.- exchangeDurable
declareExchange
が真の場合、交換が永続的であるかどうか(つまり、ブローカーの再起動後も存続するかどうか)。デフォルト:
true
.- exchangeType
交換型: パーティション化されていない宛先の場合は
direct
、fanout
、headers
またはtopic
、パーティション化された宛先の場合はdirect
、ヘッダー、topic
。デフォルト:
topic
.- exclusive
排他的なコンシューマーを作成するかどうか。これが
true
の場合、同時実行性は 1 である必要があります。厳密な順序付けが必要な場合によく使用されますが、障害後にホットスタンバイインスタンスが引き継ぐことができます。スタンバイインスタンスが消費を試みる頻度を制御するrecoveryInterval
を参照してください。RabbitMQ 3.8 以降を使用する場合は、代わりにsingleActiveConsumer
の使用を検討してください。デフォルト:
false
.- expires
未使用のキューが削除されるまでの時間(ミリ秒単位)。
デフォルト:
no expiration
- failedDeclarationRetryInterval
キューが欠落している場合に、キューからの消費を試行する間隔(ミリ秒単位)。
デフォルト: 5000
- frameMaxHeadroom
スタックトレースを DLQ メッセージヘッダーに追加するときに他のヘッダー用に予約するバイト数。すべてのヘッダーは、ブローカーで構成された
frame_max
サイズ内に収まる必要があります。スタックトレースは大きくなる可能性があります。サイズにこのプロパティを加えたものがframe_max
を超える場合、スタックトレースは切り捨てられます。警告ログが書き込まれます。例外をキャッチし、スタックトレースが小さいものをスローすることにより、frame_max
を増やすか、スタックトレースを減らすことを検討してください。デフォルト: 20000
- headerPatterns
受信メッセージからマッピングされるヘッダーのパターン。
デフォルト:
['*']
(すべてのヘッダー)。- lazy
x-queue-mode=lazy
引数を使用してキューを宣言します。“怠惰なキュー” (英語) を参照してください。ポリシーを使用すると、キューを削除せずに設定を変更できるため、この設定の代わりにポリシーを使用することを検討してください。デフォルト:
false
.- maxConcurrency
コンシューマーの最大数。
containerType
がdirect
の場合はサポートされません。デフォルト:
1
.- maxLength
キュー内のメッセージの最大数。
デフォルト:
no limit
- maxLengthBytes
すべてのメッセージからのキュー内の合計バイト数の最大数。
デフォルト:
no limit
- maxPriority
キュー内のメッセージの最大優先度(0-255)。
デフォルト:
none
- missingQueuesFatal
キューが見つからない場合、その状態を致命的なものとして扱い、リスナーコンテナーを停止するかどうか。デフォルトは
false
であるため、コンテナーはキューからの消費を継続します。たとえば、クラスターを使用していて、非 HA キューをホストしているノードがダウンしている場合です。デフォルト:
false
- overflowBehavior
maxLength
またはmaxLengthBytes
を超えたときに実行するアクション。現在drop-head
またはreject-publish
ですが、RabbitMQ のドキュメントを参照してください。デフォルト:
none
- prefetch
プリフェッチカウント。
デフォルト:
1
.- prefix
destination
およびキューの名前に追加されるプレフィックス。デフォルト: "".
- queueBindingArguments
キューを取引所にバインドするときに適用される引数。
headers
exchangeType
とともに使用して、一致するヘッダーを指定します。たとえば、…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
に設定されている場合、バインダーは、最終的な失敗の原因からの例外メッセージとスタックトレースを含む追加ヘッダーとともに、失敗したメッセージを DLQ に再発行します。frameMaxHeadroom プロパティも参照してください。デフォルト:
true
- singleActiveConsumer
true に設定すると、
x-single-active-consumer
キュープロパティが true に設定されます。デフォルト:
false
- transacted
トランザクションチャネルを使用するかどうか。
デフォルト:
false
.- ttl
宣言されたときにキューに適用するためのデフォルトの存続時間(ミリ秒単位)。
デフォルト:
no limit
- txSize
ラック間の配信数。
containerType
がdirect
の場合はサポートされません。デフォルト:
1
.