Как автоматически генерировать схемы Avro в Go?

Я пытаюсь интегрировать Avro и Schema Registry в наши конвейеры данных Kafka. Теперь он выглядит внутри сервиса Go как

Получить данные -> Кодировать данные в JSON -> Записать в Kafka

Я хочу использовать схему Avro таким же образом

Создать схему -> Обновить схему в реестре схем -> Получить данные -> Кодировать в Avro -> Записать в Kafka

Но есть несколько вопросов:

  1. Как автоматически сгенерировать схему из классов Go?
  2. Как проверить совместимость схемы с Реестром схем?

1 ответ

Есть несколько альтернатив для создания классов Go из Avro. Вы пробовали это https://github.com/actgardner/gogen-avro?

Использование Чтобы сгенерировать исходные файлы Go из одного или нескольких файлов схемы Avro, выполните:

gogen-avro [--package =] [--containers] выходной_каталог avro_schema файлы

Реестр Confluent Schema предоставляет несколько способов проверки совместимости между схемами. Вы можете взглянуть на их API здесь. Есть и другие способы сделать это, например, использовать maven во время ваших интеграционных тестов для обеспечения совместимости между вашим источником и другими средами. Вы можете найти некоторую информацию здесь.

Другие вопросы по тегам