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 会启动一个代理,除非设置了 环境变量: 显示更多 |
布尔值 |
|
开发服务将侦听的可选固定端口。 如果未定义,将随机选择端口。 环境变量: 显示更多 |
整数 |
|
要使用的镜像。请注意,仅支持 Apache Pulsar 镜像。具体来说,镜像仓库必须以 环境变量: 显示更多 |
字符串 |
|
指示 Quarkus Dev Services 管理的 Pulsar 代理是否共享。当共享时,Quarkus 会使用基于标签的服务发现来查找正在运行的容器。如果找到匹配的容器,则会使用该容器,而不会启动第二个。否则,Pulsar 的 Dev Services 会启动一个新容器。 该发现使用 容器共享仅在开发模式下使用。 环境变量: 显示更多 |
布尔值 |
|
附加到已启动容器的 当您需要多个共享 Pulsar 代理时,将使用此属性。 环境变量: 显示更多 |
字符串 |
|
要在 Pulsar 实例上设置的代理配置 环境变量: 显示更多 |
Map<String,String> |