Как автоматически генерировать схемы Avro в Go?
Я пытаюсь интегрировать Avro и Schema Registry в наши конвейеры данных Kafka. Теперь он выглядит внутри сервиса Go как
Получить данные -> Кодировать данные в JSON -> Записать в Kafka
Я хочу использовать схему Avro таким же образом
Создать схему -> Обновить схему в реестре схем -> Получить данные -> Кодировать в Avro -> Записать в Kafka
Но есть несколько вопросов:
- Как автоматически сгенерировать схему из классов Go?
- Как проверить совместимость схемы с Реестром схем?
1 ответ
Есть несколько альтернатив для создания классов Go из Avro. Вы пробовали это https://github.com/actgardner/gogen-avro?
Использование Чтобы сгенерировать исходные файлы Go из одного или нескольких файлов схемы Avro, выполните:
gogen-avro [--package =] [--containers] выходной_каталог avro_schema файлы
Реестр Confluent Schema предоставляет несколько способов проверки совместимости между схемами. Вы можете взглянуть на их API здесь. Есть и другие способы сделать это, например, использовать maven во время ваших интеграционных тестов для обеспечения совместимости между вашим источником и другими средами. Вы можете найти некоторую информацию здесь.