リアクティブメッセージング RabbitMQ コネクターのリファレンスドキュメント
previewこのガイドは、 RabbitMQ スタートガイド のドキュメントです。リアクティブメッセージング用 RabbitMQ コネクターの設定と使い方について詳しく説明します。
| このドキュメントは、コネクターのすべての詳細を網羅しているわけではありません。詳細については、 SmallRye Reactive Messaging website サイトを参照してください。 |
RabbitMQ コネクターを使用すると、Quarkus アプリケーションは AMQP 0.9.1 プロトコルを使用してメッセージを送受信できます。プロトコルの詳細については、 AMQP 0.9.1 の仕様書 を参照してください。
| The RabbitMQ connector is specifically designed for AMQP 0-9-1. While RabbitMQ 4 now supports the AMQP 1.0 protocol, the two protocols are fundamentally different. If you want to communicate with RabbitMQ using AMQP 1.0, we recommend using the AMQP 1.0 connector. Please note that using AMQP 1.0 with RabbitMQ may still have some limitations or reduced functionality compared to native 0-9-1 usage. |
|
この技術は、previewと考えられています。 preview では、下位互換性やエコシステムでの存在は保証されていません。具体的な改善には設定や API の変更が必要になるかもしれませんが、 stable になるための計画は現在進行中です。フィードバックは メーリングリスト や GitHub の課題管理 で受け付けています。 とりうるステータスの完全なリストについては、 FAQの項目 を参照してください。 |
RabbitMQ コネクターのエクステンション
コネクタを使用するには、 quarkus-messaging-rabbitmq エクステンションを追加する必要があります。
次のコマンドでプロジェクトにエクステンションを追加することができます:
> ./mvnw quarkus:add-extensions -Dextensions="quarkus-messaging-rabbitmq"
あるいは、以下の依存関係をプロジェクトに追加するだけです:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-messaging-rabbitmq</artifactId>
</dependency>
プロジェクトに追加したら、 connector 属性を設定することで、チャネル を RabbitMQ エクスチェンジまたはキューにマップできます。
# Inbound
mp.messaging.incoming.[channel-name].connector=smallrye-rabbitmq
# Outbound
mp.messaging.outgoing.[channel-name].connector=smallrye-rabbitmq
ブローカーの要求に応じて、 outgoing チャネルは RabbitMQ エクスチェンジにマップされ、 incoming チャネルは RabbitMQ キューにマップされます。
RabbitMQ ブローカーアクセスの設定
RabbitMQ コネクターは RabbitMQ ブローカーに接続します。ブローカーの場所とクレデンシャルを設定するには、 application.properties に次のプロパティーを追加します。
rabbitmq-host=amqp (1)
rabbitmq-port=5672 (2)
rabbitmq-username=my-username (3)
rabbitmq-password=my-password (4)
mp.messaging.incoming.prices.connector=smallrye-rabbitmq (5)
| 1 | ブローカーのホスト名を設定します。チャネルごとに (host 属性を使用して) 設定するか、 rabbitmq-host を使用してグローバルに設定できます。 |
| 2 | ブローカーポートを設定します。チャネルごとに (port 属性を使用して) 設定するか、 rabbitmq-port を使用してグローバルに設定できます。デフォルトは 5672 です。 |
| 3 | 必要に応じてブローカーのユーザー名を設定します。チャネルごとに (username 属性を使用して) 設定するか、 rabbitmq-username を使用してグローバルに設定できます。 |
| 4 | 必要に応じてブローカーのパスワードを設定します。チャネルごとに (password 属性を使用して) 設定するか、 rabbitmq-password を使用してグローバルに設定できます。 |
| 5 | 価格チャネルに RabbitMQ コネクターでの管理を指示 |
開発モードでテストを実行すると、Dev Services for RabbitMQ が自動的に RabbitMQ ブローカーを起動します。
RabbitMQ メッセージの受信
アプリケーションが メッセージ <Double> を受信すると想像してみましょう。ペイロードを直接消費できます。
package inbound;
import org.eclipse.microprofile.reactive.messaging.Incoming;
import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class RabbitMQPriceConsumer {
@Incoming("prices")
public void consume(double price) {
// process your price.
}
}
または、Message<Double> を取得できます。
package inbound;
import org.eclipse.microprofile.reactive.messaging.Incoming;
import org.eclipse.microprofile.reactive.messaging.Message;
import jakarta.enterprise.context.ApplicationScoped;
import java.util.concurrent.CompletionStage;
@ApplicationScoped
public class RabbitMQPriceMessageConsumer {
@Incoming("prices")
public CompletionStage<Void> consume(Message<Double> price) {
// process your price.
// Acknowledge the incoming message, marking the RabbitMQ message as `accepted`.
return price.ack();
}
}
インバウンドメタデータ
RabbitMQ からのメッセージには、メタデータに IncomingRabbitMQMetadata のインスタンスが含まれています。
Optional<IncomingRabbitMQMetadata> metadata = incoming.getMetadata(IncomingRabbitMQMetadata.class);
metadata.ifPresent(meta -> {
final Optional<String> contentEncoding = meta.getContentEncoding();
final Optional<String> contentType = meta.getContentType();
final Optional<String> correlationId = meta.getCorrelationId();
final Optional<ZonedDateTime> creationTime = meta.getCreationTime(ZoneId.systemDefault());
final Optional<Integer> priority = meta.getPriority();
final Optional<String> replyTo = meta.getReplyTo();
final Optional<String> userId = meta.getUserId();
// Access a single String-valued header
final Optional<String> stringHeader = meta.getHeader("my-header", String.class);
// Access all headers
final Map<String,Object> headers = meta.getHeaders();
// ...
});
デシリアライズ
コネクターは、受信 RabbitMQ メッセージをリアクティブメッセージング Message<T> インスタンスに変換します。ペイロードタイプ T は、RabbitMQ 受信メッセージエンベロープ content_type および content_encoding プロパティーの値によって異なります。
| content_encoding | content_type | T |
|---|---|---|
現在の値 |
n/a |
|
値なし |
|
|
値なし |
|
バッファーに配列、オブジェクト、文字列などが含まれる場合に |
値なし |
その他 |
|
この RabbitMQ コネクター (アウトバウンドコネクター) を使用してオブジェクトを送信する場合、オブジェクトは JSON としてエンコードされ、 content_type を application/json に設定されて送信されます。このペイロードは、(Vert.x) JSON オブジェクトを使用して受け取り、任意のオブジェクトクラスにマップできます。
@ApplicationScoped
public static class Generator {
@Outgoing("to-rabbitmq")
public Multi<Price> prices() { (1)
AtomicInteger count = new AtomicInteger();
return Multi.createFrom().ticks().every(Duration.ofMillis(1000))
.map(l -> new Price().setPrice(count.incrementAndGet()))
.onOverflow().drop();
}
}
@ApplicationScoped
public static class Consumer {
List<Price> prices = new CopyOnWriteArrayList<>();
@Incoming("from-rabbitmq")
public void consume(JsonObject p) { (2)
Price price = p.mapTo(Price.class); (3)
prices.add(price);
}
public List<Price> list() {
return prices;
}
}
| 1 | Price インスタンスはコネクターによって自動的に JSON にエンコードされます。 |
| 2 | それを、 JsonObject を使用して受け取ることができます。 |
| 3 | その後、 mapTo メソッドを使用してインスタンスを再構築できます。 |
mapTo メソッドは Quarkus Jackson マッパーを使用します。マッパーの設定について、詳しくは このガイド を参照してください。
|
確認
RabbitMQ メッセージに関連付けられたリアクティブメッセージングメッセージが確認されると、メッセージが 受け入れられた ことをブローカーに通知します。
メッセージを明示的に確認する必要があるかどうかは、チャネルの auto-acknowledgement により異なります。これが true に設定されている場合、メッセージは受信時に自動的に確認されます。
失敗の管理
RabbitMQ メッセージから生成されたメッセージがnackされた場合、失敗戦略が適用されます。RabbitMQ コネクターは、失敗戦略チャネルの設定により制御される 3 つの戦略をサポートします。
-
fail- アプリケーションは失敗し、これ以上 RabbitMQ メッセージは処理されません。RabbitMQ メッセージは拒否済みとしてマークされます。 -
accept- this strategy marks the RabbitMQ message as accepted. The processing continues, ignoring the failure. -
reject- この戦略は、RabbitMQ メッセージを拒否済み (デフォルト) としてマークします。処理は次のメッセージに進みます。
RabbitMQ メッセージの送信
シリアル化
Message<T> 送信時、コネクターはメッセージを RabbitMQ メッセージに変換します。ペイロードは RabbitMQ メッセージの本文に変換されます。
| T | RabbitMQ メッセージの本文 |
|---|---|
プリミティブ型または |
|
|
|
|
|
|
|
その他のクラス |
ペイロードは (Json Mapper を使用して) JSON に変換され、その後 |
メッセージペイロードを JSON にシリアライズできない場合、メッセージは nack されます。
アウトバウンドメタデータ
Messages を送信するときに、 OutgoingRabbitMQMetadata のインスタンスを追加して、RabbitMQ によるメッセージの処理方法に影響を与えることができます。たとえば、ルーティングキー、タイムスタンプ、およびヘッダーを設定できます。
final OutgoingRabbitMQMetadata metadata = new OutgoingRabbitMQMetadata.Builder()
.withHeader("my-header", "xyzzy")
.withRoutingKey("urgent")
.withTimestamp(ZonedDateTime.now())
.build();
// Add `metadata` to the metadata of the outgoing message.
return Message.of("Hello", Metadata.of(metadata));
RabbitMQ エクスチェンジ/キューの設定
チャネル設定のプロパティーを使用して、チャネルに関連付けられた RabbitMQ エクスチェンジまたはキューを設定できます。 incoming チャネルは RabbitMQ queues にマップされ、 outgoing チャネルは RabbitMQ エクスチェンジにマップされます。以下はその例です。
mp.messaging.incoming.prices.connector=smallrye-rabbitmq
mp.messaging.incoming.prices.queue.name=my-queue
mp.messaging.outgoing.orders.connector=smallrye-rabbitmq
mp.messaging.outgoing.orders.exchange.name=my-order-queue
exchange.name または queue.name 属性が設定されていない場合、コネクターはチャネル名を使用します。
既存のキューを使用するには、 name を設定し、エクスチェンジまたはキュー の declare プロパティーを false に設定する必要があります。たとえば、 people エクスチェンジとキューで設定された RabbitMQ ブローカーがある場合、次の設定が必要です。
mp.messaging.incoming.people.connector=smallrye-rabbitmq
mp.messaging.incoming.people.queue.name=people
mp.messaging.incoming.people.queue.declare=false
mp.messaging.outgoing.people.connector=smallrye-rabbitmq
mp.messaging.outgoing.people.exchange.name=people
mp.messaging.outgoing.people.exchange.declare=false
実行モデルとブロッキング処理
リアクティブメッセージングは、I/O スレッドでメソッドを呼び出します。このトピックの詳細については、xQuarkus リアクティブアーキテクチャーのドキュメント を参照してください。ただし、多くの場合、リアクティブメッセージングとデータベースインタラクションなどのブロック処理を組み合わせる必要があります。このためには、処理が ブロッキング であり、呼び出し元のスレッドで実行するべきではないことを示す @Blocking アノテーションを使用する必要があります。
例えば、以下のコードは、Hibernate with Panacheを 使用してデータベースに受信ペイロードを格納する方法を示しています。
import io.smallrye.reactive.messaging.annotations.Blocking;
import org.eclipse.microprofile.reactive.messaging.Incoming;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.transaction.Transactional;
@ApplicationScoped
public class PriceStorage {
@Incoming("prices")
@Blocking
@Transactional
public void store(int priceInUsd) {
Price price = new Price();
price.value = priceInUsd;
price.persist();
}
}
|
効果はどちらも同じです。したがって、両方を使うことができます。最初のものは、使用するワーカープールや順序を保持するかどうかなど、より細かい調整が可能です。2 番目のものは、Quarkus の他のリアクティブ機能でも使用され、デフォルトのワーカープールを使用し、順序を保持します。 |
|
@RunOnVirtualThread
Java 仮想スレッドでの ブロッキング処理の実行については、 Quarkus Virtual Thread support with Reactive Messagingのドキュメント を参照してください。 |
基盤となる RabbitMQ クライアントのカスタマイズ
コネクターは、その下にある Vert.x RabbitMQ クライアントを使用します。このクライアントの詳細については、 Vert.x Web サイト を参照してください。
次のように RabbitMQOptions のインスタンスを生成することにより、基盤となるクライアント設定をカスタマイズできます。
@Produces
@Identifier("my-named-options")
public RabbitMQOptions getNamedOptions() {
PemKeyCertOptions keycert = new PemKeyCertOptions()
.addCertPath("./tls/tls.crt")
.addKeyPath("./tls/tls.key");
PemTrustOptions trust = new PemTrustOptions().addCertPath("./tlc/ca.crt");
// You can use the produced options to configure the TLS connection
return new RabbitMQOptions()
.setSsl(true)
.setPemKeyCertOptions(keycert)
.setPemTrustOptions(trust)
.setUser("user1")
.setPassword("password1")
.setHost("localhost")
.setPort(5672)
.setVirtualHost("vhost1")
.setConnectionTimeout(6000) // in milliseconds
.setRequestedHeartbeat(60) // in seconds
.setHandshakeTimeout(6000) // in milliseconds
.setRequestedChannelMax(5)
.setNetworkRecoveryInterval(500) // in milliseconds
.setAutomaticRecoveryEnabled(true);
}
このインスタンスが取得され、コネクターが使用するクライアントを設定するために使用されます。 client-options-name 属性を使用してクライアントの名前を指定する必要があります。
mp.messaging.incoming.prices.client-options-name=my-named-options
TLSの設定
RabbitMQメッセージングエクステンションは、 Quarkus TLSレジストリ と統合して、Vert.x RabbitMQクライアントを設定します。
チャネルのTLSを設定するには、 application.properties で名前付きTLS設定を提供する必要があります:
quarkus.tls.your-tls-config.trust-store.pem.certs=ca.crt,ca2.pem
# ...
mp.messaging.incoming.prices.tls-configuration-name=your-tls-config
ヘルスレポート
quarkus-smallrye-health エクステンション を備えた RabbitMQ コネクターを使用すると、readinessと liveness の確認に役立ちます。RabbitMQ コネクターは、コネクターによって管理される各チャネルの readubess と liveness を報告します。
ヘルスレポートを無効にするには、チャネルの health-enabled 属性を false に設定します。
インバウンド側 (RabbitMQ からのメッセージを受信) では、チェックにより受信者がブローカーに接続されていることを確認します。
アウトバウンド側 (RabbitMQ にレコードを送信) では、チェックにより、送信者がブローカーから切断されていないことを確認します。送信者は初期化された状態 (接続は未試行) の_可能性_がありますが、これはlive/ready と見なされます。
Note that a message processing failure nacks the message, which is then handled by the failure-strategy.
It’s the responsibility of the failure-strategy to report the failure and influence the outcome of the checks.
The fail failure strategy reports the failure, and so the check will report the fault.
動的クレデンシャル
Quarkus と RabbitMQ コネクターは、短期間の動的クレデンシャルを生成するために Vault の RabbitMQ シークレットエンジン をサポートしています。これにより、Vault は定期的に RabbitMQ クレデンシャルを作成および廃止できます。
まず、Vault の rabbitmq シークレットエンジンを有効にし、RabbitMQ の接続と認証情報を使用して設定し、Vault ロール my-role を作成する必要があります ( 10.0.0.3 を RabbitMQ コンテナーを実行している実際のホストに置き換えます)。
vault secrets enable rabbitmq
vault write rabbitmq/config/connection \
connection_uri=http://10.0.0.3:15672 \
username=guest \
password=guest
vault write rabbitmq/roles/my-role \
vhosts='{"/":{"write": ".*", "read": ".*"}}'
|
このユースケースでは、上記で設定されたユーザー |
次に、パス rabbitmq/creds/my-role で Quarkus アプリケーションに読み取り機能を与える必要があります。
cat <<EOF | vault policy write vault-rabbitmq-policy -
path "secret/data/myapps/vault-rabbitmq-test/*" {
capabilities = ["read"]
}
path "rabbitmq/creds/my-role" {
capabilities = [ "read" ]
}
EOF
これで Vault は RabbitMQ でユーザーを作成する方法を把握したため、RabbitMQ のクレデンシャルプロバイダーを使用するように Quarkus を設定する必要があります。
まず、Quarkus に、 rabbitmq という名前のクレデンシャルプロバイダーを使用して動的クレデンシャルを要求するように指示します。
quarkus.rabbitmq.credentials-provider = rabbitmq
次に、 rabbitmq クレデンシャルプロバイダーを設定します。 credentials-role オプションは、Vault で作成したロールの名前 (この場合は my-role) に設定する必要があります。 credentials-mount オプションは rabbitmq に設定する必要があります。
quarkus.vault.credentials-provider.rabbitmq.credentials-role=my-role
quarkus.vault.credentials-provider.rabbitmq.credentials-mount=rabbitmq
credentials-mount は、Vault のシークレットエンジンのマウントとして直接使用されます。ここでは、デフォルトのマウントパスである rabbitmq を使用しています。RabbitMQ シークレットエンジンがカスタムパスにマウントされている場合は、代わりに credentials-mount オプションをそのパスに設定する必要があります。
|
RabbitMQ コネクター設定のリファレンス
受信チャネルの設定
| 属性 (alias) | 説明 | 必須 | デフォルト |
|---|---|---|---|
username (rabbitmq-username) |
ブローカーへの認証に使用されるユーザー名 Type: string |
false |
|
password (rabbitmq-password) |
ブローカーへの認証に使用されるパスワード Type: string |
false |
|
host (rabbitmq-host) |
ブローカーのホスト名 Type: string |
false |
|
port (rabbitmq-port) |
ブローカーポート Type: int |
false |
|
ssl (rabbitmq-ssl) |
接続で SSL を使用するかどうか Type: boolean |
false |
|
trust-all (rabbitmq-trust-all) |
信頼証明書の検証を省略するかどうか Type: boolean |
false |
|
trust-store-path (rabbitmq-trust-store-path) |
JKS トラストストアへのパス Type: string |
false |
|
trust-store-password (rabbitmq-trust-store-password) |
JKS トラストストアのパスワード Type: string |
false |
|
credentials-provider-name (rabbitmq-credentials-provider-name) |
RabbitMQ クライアントに動的クレデンシャルを提供するために使用される RabbitMQ クレデンシャルプロバイダー Bean の名前 Type: string |
false |
|
connection-timeout |
TCP 接続タイムアウト (ミリ秒)。0 はタイムアウトなしとして解釈されます。 Type: int |
false |
|
handshake-timeout |
AMQP 0-9-1 プロトコルハンドシェイクタイムアウト (ミリ秒) Type: int |
false |
|
automatic-recovery-enabled |
自動接続回復が有効にかどうか Type: boolean |
false |
|
automatic-recovery-on-initial-connection |
初期接続での自動回復が有効かどうか Type: boolean |
false |
|
reconnect-attempts (rabbitmq-reconnect-attempts) |
再接続の試行回数 Type: int |
false |
|
reconnect-interval (rabbitmq-reconnect-interval) |
2 回の再接続試行の間隔 (秒) Type: int |
false |
|
network-recovery-interval |
再接続を試行する前に自動回復が待機する時間 (ミリ秒) Type: int |
false |
|
user |
ブローカーに接続するときに使用する AMQP ユーザー名 Type: string |
false |
|
include-properties |
ブローカーメッセージがイベントバスで渡されるときにプロパティーを含めるかどうか Type: boolean |
false |
|
requested-channel-max |
最初に要求された最大チャネル数 Type: int |
false |
|
requested-heartbeat |
最初に要求されたハートビート間隔 (秒)、ゼロの場合はなし Type: int |
false |
|
use-nio |
NIO ソケットの使用が有効かどうか Type: boolean |
false |
|
virtual-host (rabbitmq-virtual-host) |
ブローカーに接続するときに使用する仮想ホスト Type: string |
false |
|
exchange.name |
メッセージが公開される、または消費されるエクスチェンジ。設定されていない場合、チャネル名が使用されます。 Type: string |
false |
|
exchange.durable |
エクスチェンジが耐久性があるかどうか Type: boolean |
false |
|
exchange.auto-delete |
使用後にエクスチェンジを削除する必要があるかどうか Type: boolean |
false |
|
exchange.type |
エクスチェンジのType: 直接、ファンアウト、ヘッダー、またはトピック (デフォルト) Type: string |
false |
|
exchange.declare |
エクスチェンジを宣言するかどうか。エクスチェンジが独立して設定されることが予想される場合は、false に設定します。 Type: boolean |
false |
|
tracing.enabled |
トレースを有効(デフォルト)にするか、無効にするか Type: boolean |
false |
|
tracing.attribute-headers |
スパン属性として記録する必要があるヘッダーのコンマ区切りリスト。trace.enabled=true の場合にのみ関連します。 Type: string |
false |
`` |
queue.name |
メッセージが消費されるキュー。 Type: string |
true |
|
queue.durable |
キューに耐久性があるかどうか Type: boolean |
false |
|
queue.exclusive |
キューが専用かどうか Type: boolean |
false |
|
queue.auto-delete |
使用後にキューを削除する必要があるかどうか Type: boolean |
false |
|
queue.declare |
キューとバインディングを宣言するかどうか。これらが独立して設定されることが予想される場合は、false に設定します Type: boolean |
false |
|
queue.ttl |
指定されている場合、メッセージがデッドになる前に配信されないままキューに残る時間 (ms) Type: long |
false |
|
queue.single-active-consumer |
trueに設定すると、1人のコンシューマのみがメッセージをアクティブに消費できるようになります。 Type: boolean |
false |
|
queue.x-queue-type |
キューを自動的に宣言する場合、キューの種類 [quorum, classic, stream] を選ぶことができます。 Type: string |
false |
|
queue.x-queue-mode |
自動的にキューを宣言する場合、キューのモード [lazy, default] を選択することができます。 Type: string |
false |
|
max-incoming-internal-queue-size |
受信内部キューの最大サイズ Type: int |
false |
|
connection-count |
このキューから消費するために作成するRabbitMQ接続の数です。これは、単一のクライアントでシャードされたキューから消費するために必要な場合があります。 Type: int |
false |
|
auto-bind-dlq |
DLQ を自動的に宣言し、それをバインダー DLX にバインドするかどうか Type: boolean |
false |
|
dead-letter-queue-name |
DLQ の名前。指定しない場合、デフォルトは キューの名前に .dlq を追加したものになります。 Type: string |
false |
|
dead-letter-exchange |
キューに割り当てる DLX。auto-bind-dlq が true の場合にのみ関連します。 Type: string |
false |
|
dead-letter-exchange-type |
キューに割り当てる DLX のタイプ。auto-bind-dlq が true の場合にのみ関連します。 Type: string |
false |
|
dead-letter-routing-key |
キューに割り当てるデッドレタールーティングキー。指定しない場合、デフォルトでキュー名になります。 Type: string |
false |
|
dlx.declare |
デッドレターエクスチェンジバインディングを宣言するかどうか。auto-bind-dlq が true の場合にのみ関連します。これらが独立して設定されることが予想される場合は、false に設定します。 Type: boolean |
false |
|
dead-letter-queue-type |
DLQを自動的に宣言する場合、DLQの種類 [quorum, classic, stream] を選ぶことができます。 Type: string |
false |
|
dead-letter-queue-mode |
DLQを自動的に宣言する場合、DLQのモード [lazy, default] を選択することができます。 Type: string |
false |
|
failure-strategy |
RabbitMQ メッセージがnackされた場合に適用する失敗戦略。承認される値は、 Type: string |
false |
|
broadcast |
受信した RabbitMQ メッセージを複数の サブスクライバー にディスパッチする必要があるかどうか Type: boolean |
false |
|
auto-acknowledgement |
受信した RabbitMQ メッセージを受信時に確認する必要があるかどうか。true の場合、配信は確認されます。 Type: boolean |
false |
|
keep-most-recent |
最近のメッセージではなく古いメッセージを破棄するかどうか Type: boolean |
false |
|
routing-keys |
キューをエクスチェンジにバインドするためのルーティングキーのコンマ区切りリスト Type: string |
false |
|
content-type-override |
受信メッセージのcontent_type属性をオーバーライドします。有効なMIMEタイプであるべきです。 Type: string |
false |
|
max-outstanding-messages |
RabbitMQ に送信/未ackメッセージの最大数。正の数でなければなりません。 Type: int |
false |
発信チャネル設定
| 属性 (alias) | 説明 | 必須 | デフォルト |
|---|---|---|---|
automatic-recovery-enabled |
自動接続回復が有効にかどうか Type: boolean |
false |
|
automatic-recovery-on-initial-connection |
初期接続での自動回復が有効かどうか Type: boolean |
false |
|
connection-timeout |
TCP 接続タイムアウト (ミリ秒)。0 はタイムアウトなしとして解釈されます。 Type: int |
false |
|
default-routing-key |
エクスチェンジにメッセージを送信するときに使用するデフォルトのルーティングキー Type: string |
false |
`` |
default-ttl |
指定されている場合、送信されたメッセージが未配信のままキューに残る時間 (ミリ秒) Type: long |
false |
|
exchange.auto-delete |
使用後にエクスチェンジを削除する必要があるかどうか Type: boolean |
false |
|
exchange.declare |
エクスチェンジを宣言するかどうか。エクスチェンジが独立して設定されることが予想される場合は、false に設定します。 Type: boolean |
false |
|
exchange.durable |
エクスチェンジが耐久性があるかどうか Type: boolean |
false |
|
exchange.name |
メッセージが公開される、または消費されるエクスチェンジ。設定されていない場合、チャネル名が使用されます。 Type: string |
false |
|
exchange.type |
エクスチェンジのType: 直接、ファンアウト、ヘッダー、またはトピック (デフォルト) Type: string |
false |
|
handshake-timeout |
AMQP 0-9-1 プロトコルハンドシェイクタイムアウト (ミリ秒) Type: int |
false |
|
host (rabbitmq-host) |
ブローカーのホスト名 Type: string |
false |
|
include-properties |
ブローカーメッセージがイベントバスで渡されるときにプロパティーを含めるかどうか Type: boolean |
false |
|
max-inflight-messages |
RabbitMQ に同時に書き込まれるメッセージの最大数。正の数でなければなりません。 Type: long |
false |
|
max-outgoing-internal-queue-size |
発信内部キューの最大サイズ Type: int |
false |
|
network-recovery-interval |
再接続を試行する前に自動回復が待機する時間 (ミリ秒) Type: int |
false |
|
password (rabbitmq-password) |
ブローカーへの認証に使用されるパスワード Type: string |
false |
|
port (rabbitmq-port) |
ブローカーポート Type: int |
false |
|
reconnect-attempts (rabbitmq-reconnect-attempts) |
再接続の試行回数 Type: int |
false |
|
reconnect-interval (rabbitmq-reconnect-interval) |
2 回の再接続試行の間隔 (秒) Type: int |
false |
|
requested-channel-max |
最初に要求された最大チャネル数 Type: int |
false |
|
requested-heartbeat |
最初に要求されたハートビート間隔 (秒)、ゼロの場合はなし Type: int |
false |
|
ssl (rabbitmq-ssl) |
接続で SSL を使用するかどうか Type: boolean |
false |
|
tracing.attribute-headers |
スパン属性として記録する必要があるヘッダーのコンマ区切りリスト。trace.enabled=true の場合にのみ関連します。 Type: string |
false |
`` |
tracing.enabled |
トレースを有効(デフォルト)にするか、無効にするか Type: boolean |
false |
|
trust-all (rabbitmq-trust-all) |
信頼証明書の検証を省略するかどうか Type: boolean |
false |
|
trust-store-password (rabbitmq-trust-store-password) |
JKS トラストストアのパスワード Type: string |
false |
|
trust-store-path (rabbitmq-trust-store-path) |
JKS トラストストアへのパス Type: string |
false |
|
credentials-provider-name (rabbitmq-credentials-provider-name) |
RabbitMQ クライアントに動的クレデンシャルを提供するために使用される RabbitMQ クレデンシャルプロバイダー Bean の名前 Type: string |
false |
|
use-nio |
NIO ソケットの使用が有効かどうか Type: boolean |
false |
|
user |
ブローカーに接続するときに使用する AMQP ユーザー名 Type: string |
false |
|
username (rabbitmq-username) |
ブローカーへの認証に使用されるユーザー名 Type: string |
false |
|
virtual-host (rabbitmq-virtual-host) |
ブローカーに接続するときに使用する仮想ホスト Type: string |
false |
|