Перейти к содержанию

Реестр схем

Neomsa Messaging использует бинарный формат для хранения и передачи сообщений. В сообщениях нет никакой информации об их структуре. Поэтому для интерпретации данных в бинарном формате потребителю нужно воспользоваться схемой формата данных (format schema). Она описывает формат ввода или вывода данных.

На основе схемы формата данных производитель формирует, а потребитель интерпретирует сообщения из топиков. Если схемы форматов данных производителей и потребителей будут различаться, в работе приложения будут возникать ошибки из-за неправильной интерпретации сообщений.

Разработчикам производителя и потребителя необходимо:

  • своевременно обновлять схемы форматов данных;

  • обеспечивать возможность работы производителя и потребителя сразу с несколькими версиями схем форматов данных, если это необходимо;

  • для автоматизации работы со схемами формата данных используется реестр схем формата данных. Он существенно упрощает работу с данными, особенно в случаях, когда схема меняется со временем. Реестр автоматически проверяет совместимость версий данных и обеспечивает обратную совместимость версий схем.

Как работает реестр схем форматов данных

Производитель передает схемы форматов данных в реестр. Поддерживаются следующие форматы схем данных:

  • Avro

  • JSON Schema

  • Protobuf

При помещении схемы в реестр:

  • схеме присваивается уникальный номер версии;

  • схема и ее версия сохраняются в служебной топике Neomsa Messaging;

  • при отправке сообщения продюсер указывает номер версии нужной схемы;

  • при получении сообщения консьюмер извлекает из него номер версии схемы формата данных;

  • если нужной схемы формата данных нет в локальном кэше, потребитель обращается за ней в реестр. Получив нужную схему, он корректно интерпретирует полученное сообщение.