Dev Services for Pulsar

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

Enabling / Disabling Dev Services for Pulsar

除非满足以下条件,否则会自动启用针对 Pulsar 的 Dev Services:

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

  • the pulsar.client.serviceUrl is configured

  • 所有的 Reactive Messaging Pulsar 频道都有 serviceUrl 属性设置

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

Shared broker

大多数情况下,您需要在应用程序之间共享代理。用于 Pulsar 的 Dev Services 为在 dev 模式下运行您的多个 Quarkus 应用程序实施了一个 service discovery 机制,以共享一个代理。

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

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

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

Setting the port

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

请注意,Pulsar 通告地址会使用所选端口自动配置。

Configuring the image

用于 Pulsar 的 Dev Services 支持 official Apache Pulsar image

可以配置自定义镜像名称,如下所示:

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

Configuring the Pulsar broker

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

下面的示例启用事务支持:

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