Dev Services para Apicurio Registry
If an extension for schema registry, such as quarkus-apicurio-registry-avro or quarkus-confluent-registry-avro, is present, Dev Services for Apicurio Registry automatically starts an Apicurio Registry instance in dev mode and when running tests.
Also, all Kafka channels in SmallRye Reactive Messaging are automatically configured to use this registry.
This automatic configuration only applies to serializers and deserializers from Apicurio Registry serde libraries and Confluent Schema Registry serde libraries, because their properties are set:
# 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
Ativando / Desativando Dev Services para o Apicurio Registry
Dev Services para Apicurio Registry é ativado automaticamente a menos que:
-
quarkus.apicurio-registry.devservices.enabledé definido comofalse -
mp.messaging.connector.smallrye-kafka.apicurio.registry.urlestá configurado -
mp.messaging.connector.smallrye-kafka.schema.registry.urlestá configurado -
Todos os canais do Reactive Messaging Kafka têm o atributo
apicurio.registry.urlou o atributoschema.registry.urldefinido
O Dev Services para Apicurio Registry depende do Docker para iniciar o registro. Se o seu ambiente não for compatível com o Docker, será necessário iniciar o registro manualmente ou usar um registro já em execução. Nesse caso, você pode configurar o URL do registro para todos os canais Kafka na Mensageria Reativa do SmallRye com uma única propriedade. Para o Apicurio Registry serde, isso é:
mp.messaging.connector.smallrye-kafka.apicurio.registry.url=... your Apicurio Registry URL...
Ou seja, para o serviço Confluent Schema Registry:
mp.messaging.connector.smallrye-kafka.schema.registry.url=... your Confluent Schema Registry URL...
Registro compartilhado
Most of the time, you need to share the registry between applications. Dev Services for Apicurio Registry implements a service discovery mechanism for your multiple Quarkus applications running in dev mode to share a single registry.
Dev Services for Apicurio Registry starts the container with the quarkus-dev-service-apicurio-registry label, which is used to identify the container.
|
Se precisar de vários registros (compartilhados), o usuário pode configurar o atributo quarkus.apicurio-registry.devservices.service-name e indicar o nome do registro. Ele procura um contêiner com o mesmo valor ou inicia um novo se não for encontrado nenhum. O nome do serviço padrão é apicurio-registry .
O compartilhamento é ativado por padrão no modo de desenvolvimento, mas desativado no modo de teste. Você pode desativar o compartilhamento com quarkus.apicurio-registry.devservices.shared=false .
Definindo a porta
Por padrão, o Dev Services para Apicurio Registry escolhe uma porta aleatória e configura o aplicativo. Você pode definir a porta configurando a propriedade quarkus.apicurio-registry.devservices.port .
Observe que os canais Kafka no SmallRye Reactive messaging são automaticamente configurados com a porta escolhida.
Configurando a imagem
O Dev Services para Apicurio Registry usa imagens apicurio/apicurio-registry-mem. Você pode selecionar qualquer versão 2.x em https://hub.docker.com/r/apicurio/apicurio-registry-mem:
quarkus.apicurio-registry.devservices.image-name=quay.io/apicurio/apicurio-registry-mem:2.6.13.Final
Compose
The Apicurio Dev Services supports Compose Dev Services.
It relies on a compose-devservices.yml, such as:
name: <application name>
services:
apicurio:
image: quay.io/apicurio/apicurio-registry-mem:2.6.13.Final
ports:
- "8080"