The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.
このページを編集

Dev Services for RabbitMQ

Dev Services for RabbitMQは、開発モードやテストの実行時に自動的にRabbitMQブローカーを起動します。そのため、ブローカーを手動で起動する必要はありません。アプリケーションは自動的に設定されます。

Enabling / disabling Dev Services for RabbitMQ

Dev Services for RabbitMQは、以下の条件が満たされない限り自動的に有効化されます。

  • quarkus.rabbitmq.devservices.enabledfalse に設定されていること

  • 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

関連コンテンツ