Avro e Schema Registry
Adicione um Schema Registry a um broker Kafka (veja Conectar nos brokers) e o Marshall decodifica mensagens Avro no formato da Confluent: um byte zero, depois o id do schema em 4 bytes, depois o registro.
O que você vê
Os registros decodificados aparecem como JSON, então tudo o que funciona com JSON funciona com eles: a visão dos autos, a objeção de formato e a busca.
- Records, enums, arrays, maps, unions, fixed e tipos nomeados são decodificados.
- Os tipos lógicos aparecem legíveis: timestamps como datas ISO 8601, decimais como o número que são.
Cada schema é buscado uma vez pelo id e guardado; um schema que o registry não tem também é lembrado, para um tópico cheio de um id desconhecido não martelar o registry.
Quando não dá para decodificar
Cada falha tem nome, porque cada uma manda você para um lugar diferente:
| Falha | Olhe |
|---|---|
| Não configurado | O broker não tem URL de registry |
| Inacessível | A URL, a rede |
| Não autorizado | O usuário e a senha do registry |
| Não encontrado | O id do schema não está nesse registry |
| Schema inválido | O registry devolveu um schema que o Marshall não consegue ler |
Mensagens que não deram para decodificar não entram na busca como texto e nunca são mandadas para o Pergunte ao seu tópico.
Limites
- Só Avro. Protobuf e JSON Schema do registry ainda não são decodificados.
- O Marshall não recodifica Avro ao produzir. Protocolar um registro decodificado como cópia corrigida é recusado, porque colocaria JSON num tópico que todo consumidor lê como Avro.
