编辑此页面

Pulsar 的 Dev Services

借助 Quarkus Messaging Pulsar 扩展 (quarkus-messaging-pulsar),Pulsar 的 Dev Services 会在开发模式和运行测试时自动启动 Pulsar 代理。因此,您无需手动启动代理。应用程序会自动配置。

启用/禁用 Pulsar 的 Dev Services

Pulsar 的 Dev Services 会自动启用,除非

  • quarkus.pulsar.devservices.enabled 被设置为 false

  • pulsar.client.serviceUrl 已配置

  • 所有 Reactive Messaging Pulsar 通道都设置了 serviceUrl 属性

Pulsar 的 Dev Services 依赖 Docker 来启动代理。如果您的环境不支持 Docker,您需要手动启动代理,或者连接到一个已运行的代理。您可以使用 pulsar.client. 来配置代理地址。

共享消息代理

大多数情况下,您需要在应用程序之间共享代理。Pulsar 的 Dev Services 实现了一种服务发现机制,供您在开发模式下运行的多个 Quarkus 应用程序共享单个代理。

Pulsar 的 Dev Services 使用 quarkus-dev-service-pulsar 标签启动容器,该标签用于识别容器。

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

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

设置端口

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

请注意,Pulsar 的广告地址会自动配置为选定的端口。

配置镜像

Pulsar 的 Dev Services 支持 官方 Apache Pulsar 镜像

可以这样配置自定义镜像名称

quarkus.pulsar.devservices.image-name=datastax/lunastreaming-all:2.10_4.7

配置 Pulsar 代理

您可以使用自定义代理配置来配置 Pulsar 的 Dev Services。

以下示例启用事务支持

quarkus.pulsar.devservices.broker-config.transaction-coordinator-enabled=true
quarkus.pulsar.devservices.broker-config.system-topic-enabled=true

配置参考

构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖

配置属性

类型

默认

如果 Pulsar 的 Dev Services 已被显式启用或禁用。Dev Services 通常默认启用,除非存在现有配置。对于 Pulsar,Dev Services 会启动一个代理,除非设置了 pulsar.client.serviceUrl,或者所有 Reactive Messaging Pulsar 通道都配置了 serviceUrl

环境变量:QUARKUS_PULSAR_DEVSERVICES_ENABLED

显示更多

布尔值

开发服务将侦听的可选固定端口。

如果未定义,将随机选择端口。

环境变量:QUARKUS_PULSAR_DEVSERVICES_PORT

显示更多

整数

要使用的镜像。请注意,仅支持 Apache Pulsar 镜像。具体来说,镜像仓库必须以 apachepulsar/pulsar 结尾。请查看 https://hub.docker.com/r/apachepulsar/pulsar 以查找可用的版本。

环境变量:QUARKUS_PULSAR_DEVSERVICES_IMAGE_NAME

显示更多

字符串

apachepulsar/pulsar:3.2.4

指示 Quarkus Dev Services 管理的 Pulsar 代理是否共享。当共享时,Quarkus 会使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则会使用该容器,而不会启动第二个。否则,Pulsar 的 Dev Services 会启动一个新容器。

该发现使用 quarkus-dev-service-pulsar 标签。该值使用 service-name 属性配置。

容器共享仅在开发模式下使用。

环境变量:QUARKUS_PULSAR_DEVSERVICES_SHARED

显示更多

布尔值

true

附加到已启动容器的 quarkus-dev-service-pulsar 标签的值。当 shared 设置为 true 时使用此属性。在这种情况下,在启动容器之前,Pulsar 的 Dev Services 会查找 quarkus-dev-service-pulsar 标签设置为指定值的容器。如果找到,它将使用该容器而不是启动新容器。否则,它将启动一个带有 quarkus-dev-service-pulsar 标签设置为指定值的新容器。

当您需要多个共享 Pulsar 代理时,将使用此属性。

环境变量:QUARKUS_PULSAR_DEVSERVICES_SERVICE_NAME

显示更多

字符串

pulsar

要在 Pulsar 实例上设置的代理配置

环境变量:QUARKUS_PULSAR_DEVSERVICES_BROKER_CONFIG__ENVIRONMENT_VARIABLE_NAME_

显示更多

Map<String,String>

相关内容