Реестр схем Кафки для Protobuff

#apache-kafka #protocol-buffers #confluent-schema-registry

Вопрос:

Как схема, используемая производителем при отправке сообщения, попадает в реестр схем кафки, поскольку производитель будет знать только сгенерированный класс сообщения protobuff.

Кроме того, как пользователь использует реестр схем, какую роль схема будет играть при потреблении, помимо обнаружения несовместимости.

Насколько я понимаю, потребитель уже будет получать сообщения в объекте класса, созданного генератором кода protobuff

Ответ №1:

Сгенерированный класс имеет метод для получения своего определения прото ( Message#getDescriptorForType() ). Когда сообщение сериализуется, вызывается этот метод, и схема отправляется в виде текста по протоколу HTTP в реестр и возвращается с идентификатором. Этот идентификатор хранится в записи Кафки; фактическая схема-нет.

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

Исходный код доступен для вас, чтобы вы могли лучше понять это.

Комментарии:

1. Не стесняйтесь принять ответ, поставив галочку рядом с сообщением