Dev Services for Apicurio Registry
quarkus-apicurio-registry-avro
や quarkus-confluent-registry-avro
のようなスキーマレジストリのエクステンションが存在する場合、Dev Services for Apicurio Registryは、開発モードやテスト実行時に自動的にApicurio Registryインスタンスを起動します。また、SmallRye Reactive MessagingのすべてのKafkaチャンネルは、このレジストリを使用するように自動的に設定されます。これらのプロパティが設定されているので、この自動設定は、Apicurio Registry serde ライブラリおよび Confluent Schema Registry 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
Dev Services for Apicurio Registryの有効化/無効化
Dev Services for Apicurio Registryは以下に当てはまらない場合、自動的に有効になります。
-
quarkus.apicurio-registry.devservices.enabled
がfalse
に設定されていること -
mp.messaging.connector.smallrye-kafka.apicurio.registry.url
が設定されていること -
mp.messaging.connector.smallrye-kafka.schema.registry.url
が設定されていること -
すべてのReactive Messaging Kafkaチャンネルには
apicurio.registry.url
属性か、schema.registry.url
属性が設定されています
Dev Services for Apicurio Registryは、レジストリの起動にDockerを使用しています。お使いの環境がDockerをサポートしていない場合は、レジストリを手動で起動するか、すでに稼働しているレジストリを使用する必要があります。そのような場合、単一のプロパティを使用して、SmallRye Reactive Messaging のすべての Kafka チャネルのレジストリ URL を構成できます。 Apicurio Registry serde の場合は以下です。
mp.messaging.connector.smallrye-kafka.apicurio.registry.url=... your Apicurio Registry URL...
Confluent Schema Registry serdeについては、以下です。
mp.messaging.connector.smallrye-kafka.schema.registry.url=... your Confluent Schema Registry URL...
共有レジストリ
ほとんどの場合、アプリケーション間でレジストリを共有する必要があります。Dev Services for Apicurio Registryは、 開発 モードで動作する複数のQuarkusアプリケーションが1つのレジストリを共有するための サービスディスカバリ メカニズムを実装しています。
Dev Services for Apicurio Registryは、コンテナを識別するために使用される quarkus-dev-service-apicurio-registry ラベル付でコンテナを起動します。
|
複数の(共有)レジストリが必要な場合は、 quarkus.apicurio-registry.devservices.service-name
属性を設定し、レジストリ名を示すことができます。同じ値のコンテナを探し、見つからない場合は新しいコンテナを開始します。デフォルトのサービス名は apicurio-registry
です。
共有は、開発モードではデフォルトで有効ですが、testモードでは無効です。 quarkus.apicurio-registry.devservices.shared=false
で共有を無効にすることが可能です。
ポートの設定
既定では、Dev Services for Apicurio Registryはランダムなポートを選択してアプリケーションを設定します。 quarkus.apicurio-registry.devservices.port
プロパティを設定することで、ポートを設定できます。
SmallRye Reactive messaging のKafkaチャンネルは、選択したポートで自動的に設定されることに注意してください。
イメージの設定
Dev Services for Apicurio Registryは、 apicurio/apicurio-registry-mem
のイメージを使用しています。 https://hub.docker.com/r/apicurio/apicurio-registry-mem から任意の 2.x バージョンを選択することができます。
quarkus.apicurio-registry.devservices.image-name=apicurio/apicurio-registry-mem:latest-snapshot