Dev Services para Apicurio Registry
Se uma extensão para registro de esquema, como quarkus-apicurio-registry-avro
ou quarkus-confluent-registry-avro
, estiver presente, o Dev Services para Registro do Apicurio Registry inicia automaticamente uma instância do Apicurio Registry no modo de desenvolvimento e ao executar testes. Além disso, todos os canais Kafka no SmallRye Reactive Messaging são automaticamente configurados para usar esse registro. Essa configuração automática só se aplica a serializadores e desserializadores das bibliotecas de serviço do Apicurio Registry e das bibliotecas de serviço do Confluent Schema Registry, porque essas propriedades estão definidas:
# 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.url
está configurado -
mp.messaging.connector.smallrye-kafka.schema.registry.url
está configurado -
Todos os canais do Reactive Messaging Kafka têm o atributo
apicurio.registry.url
ou o atributoschema.registry.url
definido
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
Na maioria das vezes, você precisa compartilhar o registro entre aplicativos. O Dev Services para Apicurio Registry implementa um mecanismo de descoberta de serviços para que seus vários aplicativos Quarkus em execução no modo de desenvolvimento compartilhem um único registro.
Dev Services para Apicurio Registry inicia o container com a etiqueta quarkus-dev-service-apicurio-registry que é utilizada para identificar o contêiner.
|
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=apicurio/apicurio-registry-mem:latest-snapshot