Dev Services for RabbitMQ
Dev Services for RabbitMQは、開発モードやテストの実行時に自動的にRabbitMQブローカーを起動します。そのため、ブローカーを手動で起動する必要はありません。アプリケーションは自動的に設定されます。
Enabling / disabling Dev Services for RabbitMQ
Dev Services for RabbitMQは、以下の条件が満たされない限り自動的に有効化されます。
-
quarkus.rabbitmq.devservices.enabled
がfalse
に設定されていること -
rabbitmq-host
またはrabbitmq-port
が設定されていること -
すべてのReactive Messaging RabbitMQチャンネルに
host
またはport
の属性が設定されていること。
Dev Services for RabbitMQ relies on Docker to start the broker.
If your environment does not support Docker, you must start the broker manually, or connect to an already running broker.
You can configure the broker access by using the rabbitmq-host
, rabbitmq-port
, rabbitmq-username
and rabbitmq-password
properties.
共有ブローカー
Most of the time you want to share the broker between applications. Dev Services for RabbitMQ implements a service discovery mechanism for your multiple Quarkus applications running in dev mode to share a single broker.
Dev Services for RabbitMQ starts the container with the quarkus-dev-service-rabbitmq label, which is used to identify the container.
|
複数の(共有)ブローカーが必要な場合は、 quarkus.rabbitmq.devservices.service-name
属性を設定し、ブローカー名を示します。同じ値のコンテナを探し、見つからない場合は新しいコンテナを開始します。デフォルトのサービス名は rabbitmq
です。
共有は、devモードではデフォルトで有効ですが、testモードでは無効です。 quarkus.rabbitmq.devservices.shared=false
で共有を無効にすることが可能です。
ポートの設定
既定では、Dev Services for RabbitMQ はランダムなポートを選択し、アプリケーションを設定します。ポートを設定するには、 quarkus.rabbitmq.devservices.port
プロパティを設定します。
イメージの設定
Dev Services for RabbitMQ uses official images available at https://hub.docker.com/_/rabbitmq.
You can configure the image and version with the quarkus.rabbitmq.devservices.image-name
property:
quarkus.rabbitmq.devservices.image-name=rabbitmq:latest
管理UIにアクセスする
By default, Dev Services for RabbitMQ use the official image with the management
tag. This means you have the management plugin available. You can use the Dev UI to find the HTTP port randomly affected
or configure a static one by using quarkus.rabbitmq.devservices.http-port
.
Predefined topology
Dev Services for RabbitMQ supports defining topology upon broker start. You can define Virtual Hosts, Exchanges, Queues, and Bindings through standard Quarkus configuration.
Defining virtual hosts
RabbitMQ uses a default virtual host of /
. To define additional RabbitMQ virtual hosts, provide the names
of the virtual hosts in the quarkus.rabbitmq.devservices.vhosts
key:
quarkus.rabbitmq.devservices.vhosts=my-vhost-1,my-vhost-2
Defining exchanges
RabbitMQエクスチェンジを定義するには、 quarkus.rabbitmq.devservices.exchanges
キーの後にエクスチェンジの名前を指定し、続いてエクスチェンジのプロパティを1つ(または複数)指定します。
quarkus.rabbitmq.devservices.exchanges.my-exchange.type=topic # defaults to 'direct'
quarkus.rabbitmq.devservices.exchanges.my-exchange.auto-delete=false # defaults to 'false'
quarkus.rabbitmq.devservices.exchanges.my-exchange.durable=true # defaults to 'false'
quarkus.rabbitmq.devservices.exchanges.my-exchange.vhost=my-vhost # defaults to '/'
Additionally, any additional arguments can be provided to the exchange’s definition by using the arguments
key:
quarkus.rabbitmq.devservices.exchanges.my-exchange.arguments.alternate-exchange=another-exchange
Defining queues
RabbitMQキューを定義するには、 quarkus.rabbitmq.devservices.queues
キーの後にキューの名前を指定し、その後にキューのプロパティを1つ(または複数)指定します。
quarkus.rabbitmq.devservices.queues.my-queue.auto-delete=false # defaults to 'false'
quarkus.rabbitmq.devservices.queues.my-queue.durable=true # defaults to 'false'
quarkus.rabbitmq.devservices.queues.my-queue.vhost=my-vhost # defaults to '/'
Additionally, any additional arguments can be provided to the queue’s definition by using the arguments
key:
quarkus.rabbitmq.devservices.queues.my-queue.arguments.x-dead-letter-exchange=another-exchange
Defining bindings
RabbitMQのバインディングを定義するには、 quarkus.rabbitmq.devservices.bindings
キーの後にバインディングの名前を指定し、その後にバインディングのプロパティを1つ(または複数)指定します。
quarkus.rabbitmq.devservices.bindings.a-binding.source=my-exchange # defaults to name of binding
quarkus.rabbitmq.devservices.bindings.a-binding.routing-key=some-key # defaults to '#'
quarkus.rabbitmq.devservices.bindings.a-binding.destination=my-queue # defaults to name of binding
quarkus.rabbitmq.devservices.bindings.a-binding.destination-type=queue # defaults to 'queue'
quarkus.rabbitmq.devservices.bindings.a-binding.vhost=my-vhost # defaults to '/'
バインディングの名前は、Dev Services の設定のためにのみ使用され、RabbitMQ で定義されたバインディングの一部ではありません。 |
Additionally, any additional arguments can be provided to the binding’s definition by using the arguments
key:
quarkus.rabbitmq.devservices.bindings.a-binding.arguments.non-std-option=value