AMQP 的 Dev Services
AMQP 开发服务在开发模式和运行测试时自动启动 AMQP 1.0 消息代理。因此,您无需手动启动消息代理。应用程序会自动配置。
启用/禁用 AMQP 开发服务
除非满足以下条件,否则 AMQP 开发服务会自动启用:
-
quarkus.amqp.devservices.enabled
设置为false
-
已配置
amqp-host
或amqp-port
-
所有 Reactive Messaging AMQP 通道都设置了
host
或port
属性
AMQP 开发服务依赖 Docker 启动消息代理。如果您的环境不支持 Docker,您需要手动启动消息代理,或连接到已运行的消息代理。您可以使用 amqp-host
、amqp-port
、amqp-user
和 amqp-password
属性配置消息代理访问。
共享消息代理
大多数情况下,您需要在应用程序之间共享消息代理。AMQP 开发服务为在开发模式下运行的多个 Quarkus 应用程序实现了一种服务发现机制,以共享单个消息代理。
AMQP 开发服务使用 quarkus-dev-service-amqp 标签启动容器,该标签用于标识容器。 |
如果需要多个(共享)消息代理,您可以配置 quarkus.amqp.devservices.service-name
属性并指定消息代理名称。它会查找具有相同值的容器,如果找不到,则启动一个新容器。默认服务名称为 amqp
。
默认情况下,在开发模式下启用共享,但在测试模式下禁用。您可以使用 quarkus.amqp.devservices.shared=false
禁用共享。
配置镜像
AMQP 开发服务使用 activemq-artemis-broker 镜像。您可以使用 quarkus.amqp.devservices.image-name
属性配置镜像和版本。
quarkus.amqp.devservices.image-name=quay.io/artemiscloud/activemq-artemis-broker:latest
配置的镜像必须与 activemq-artemis-broker 镜像兼容。容器使用 AMQ_USER 、AMQ_PASSWORD 和 AMQ_EXTRA_ARGS 环境变量启动。暴露端口 5672 和 8161(Web 控制台)。 |
配置参考
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
是否已显式启用或禁用 AMQP 开发服务。默认情况下通常会启用开发服务,除非存在现有配置。对于 AMQP,开发服务会启动一个消息代理,除非设置了 环境变量: 显示更多 |
布尔值 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
要使用的镜像。请注意,仅支持 ActiveMQ Artemis 镜像。具体来说,镜像存储库必须以 请查看 Quay 页面上的 activemq-artemis-broker 以查找可用版本。 环境变量: 显示更多 |
字符串 |
|
要传递给容器的 环境变量: 显示更多 |
字符串 |
|
指示 Quarkus 开发服务管理的 AMQP 消息代理是否共享。共享时,Quarkus 使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则使用它,因此不会启动第二个容器。否则,AMQP 开发服务将启动一个新容器。 发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到已启动容器的 当您需要多个共享 AMQP 代理时,会使用此属性。 环境变量: 显示更多 |
字符串 |
|
传递给容器的环境变量。 环境变量: 显示更多 |
Map<String,String> |