Dev Services for Apicurio Registry
如果存在诸如 quarkus-apicurio-registry-avro
或 quarkus-confluent-registry-avro
的架构注册表扩展,则适用于 Apicurio 注册表的开发服务将在开发模式下自动启动 Apicurio 注册表实例,并在运行测试时自动启动该实例。同时,SmallRye 响应式消息传递中的所有 Kafka 通道都自动配置为使用此注册表。自动配置仅适用于 Apicurio 注册表 serde 库和 Confluent 架构注册表 serde 库中的序列化程序和反序列化程序,因为已设置其属性:
# for Apicurio Registry serde
mp.messaging.connector.smallrye-kafka.apicurio.registry.url=http://localhost:8081/apis/registry/v2
# for Confluent Schema Registry serde
mp.messaging.connector.smallrye-kafka.schema.registry.url=http://localhost:8081/apis/ccompat/v6
Enabling / Disabling Dev Services for Apicurio Registry
除非满足以下条件,否则 Apicurio 注册表的开发服务会自动启用:
-
将
quarkus.apicurio-registry.devservices.enabled
设置为false
-
mp.messaging.connector.smallrye-kafka.apicurio.registry.url
is configured -
mp.messaging.connector.smallrye-kafka.schema.registry.url
is configured -
所有响应式消息传递 Kafka 通道已将
apicurio.registry.url
属性或schema.registry.url
属性都设置
Apicurio 注册表的开发服务依靠 Docker 来启动注册表。如果您的环境不支持 Docker,则需要手动启动注册表或使用已在运行的注册表。在这种情况下,您可以使用单个属性为 SmallRye 响应式消息传递中的所有 Kafka 通道配置注册表 URL。Apicurio 注册表 serde 为:
mp.messaging.connector.smallrye-kafka.apicurio.registry.url=... your Apicurio Registry URL...
对于 Confluent 架构注册表 serde,即:
mp.messaging.connector.smallrye-kafka.schema.registry.url=... your Confluent Schema Registry URL...
Shared registry
大多数情况下,你需要在应用程序之间共享注册表。Dev Service for Apicurio Registry 为在 dev 模式下运行的多个 Quarkus 应用程序实现了一个 service discovery 机制,以便共享单个注册表。
Dev Services for Apicurio Registry 使用 |
如果您需要多个(共享)注册表,您可以配置 quarkus.apicurio-registry.devservices.service-name
属性并指示注册表名称。它会查找具有相同值的一个容器,或在找不到任何容器时启动一个新的容器。默认服务名称是 apicurio-registry
。
在开发模式下,共享功能默认启用,但在测试模式下禁用。您可以使用 quarkus.apicurio-registry.devservices.shared=false
禁用共享。
Setting the port
默认情况下,针对 Apicurio 注册表的 Dev 服务会选择一个随机端口并配置该应用程序。您可以通过配置 quarkus.apicurio-registry.devservices.port
属性来设置端口。
请注意,SmallRye Reactive 消息中的 Kafka 频道会自动使用所选端口进行配置。
Configuring the image
针对 Apicurio 注册表的 Dev 服务使用 apicurio/apicurio-registry-mem
映像。您可以从 [role="bare"][role="bare"]https://hub.docker.com/r/apicurio/apicurio-registry-mem 中选择任何 2.x 版本:
quarkus.apicurio-registry.devservices.image-name=apicurio/apicurio-registry-mem:latest-snapshot