Реестр схем¶
Neomsa Messaging использует бинарный формат для хранения и передачи сообщений. В сообщениях нет никакой информации об их структуре. Поэтому для интерпретации данных в бинарном формате потребителю нужно воспользоваться схемой формата данных (format schema). Она описывает формат ввода или вывода данных.
На основе схемы формата данных производитель формирует, а потребитель интерпретирует сообщения из топиков. Если схемы форматов данных производителей и потребителей будут различаться, в работе приложения будут возникать ошибки из-за неправильной интерпретации сообщений.
Разработчикам производителя и потребителя необходимо:
-
своевременно обновлять схемы форматов данных;
-
обеспечивать возможность работы производителя и потребителя сразу с несколькими версиями схем форматов данных, если это необходимо;
-
для автоматизации работы со схемами формата данных используется реестр схем формата данных. Он существенно упрощает работу с данными, особенно в случаях, когда схема меняется со временем. Реестр автоматически проверяет совместимость версий данных и обеспечивает обратную совместимость версий схем.
Как работает реестр схем форматов данных
Производитель передает схемы форматов данных в реестр. Поддерживаются следующие форматы схем данных:
-
Avro
-
JSON Schema
-
Protobuf
При помещении схемы в реестр:
-
схеме присваивается уникальный номер версии;
-
схема и ее версия сохраняются в служебной топике Neomsa Messaging;
-
при отправке сообщения продюсер указывает номер версии нужной схемы;
-
при получении сообщения консьюмер извлекает из него номер версии схемы формата данных;
-
если нужной схемы формата данных нет в локальном кэше, потребитель обращается за ней в реестр. Получив нужную схему, он корректно интерпретирует полученное сообщение.
