Dev Services for AMQP

Dev Services AMQP 在开发模式和运行测试时将自动启动 AMQP 1.0 代理,因此您不必手动启动代理。应用程序将自动配置。

Enabling / Disabling Dev Services for AMQP

除非以下情况,否则 Dev Services AMQP 将自动启用:

  • quarkus.amqp.devservices.enabled`设置为`false

  • 已配置`amqp-host`或`amqp-port`

  • 所有 Reactive Messaging AMQP 通道都设置了`host`或`port`属性

Dev Services AMQP 依赖 Docker 来启动代理。如果您的环境不支持 Docker,您将需要手动启动代理,或连接到已在运行的代理。您可以使用`amqp-host`、amqp-port、`amqp-user`和`amqp-password`属性配置代理访问。

Shared broker

大多数时候,您需要在应用程序之间共享代理。Dev Services AMQP 为在_dev_模式下运行的多个 Quarkus 应用程序实现了_service discovery_机制,以便共享一个代理。

Dev Services AMQP 使用`quarkus-dev-service-amqp`标签启动容器,该标签用于标识容器。

如果您需要多个(共享)代理,您可以配置`quarkus.amqp.devservices.service-name`属性并指示代理名称。它将查找具有相同值或在找不到值时启动一个新值的容器。默认服务名称为`amqp`。

共享在开发模式下默认启用,但在测试模式下禁用。您可以使用`quarkus.amqp.devservices.shared=false`禁用共享。

Setting the port

默认情况下,Dev Services AMQP 选择一个随机端口并配置应用程序。您可以通过配置`quarkus.amqp.devservices.port`属性设置端口。

Configuring the image

Dev Services AMQP 使用 activemq-artemis-broker映像。您可以使用`quarkus.amqp.devservices.image-name`属性配置映像和版本:

quarkus.amqp.devservices.image-name=quay.io/artemiscloud/activemq-artemis-broker:latest

配置的映像必须是与`activemq-artemis-broker`映像 compatible 。容器使用`AMQ_USER`、`AMQ_PASSWORD`和`AMQ_EXTRA_ARGS`环境变量启动。端口 5672 和 8161(网络控制台)已公开。