Как стать автором
Обновить

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

А как наличие схем влияет на производительность? Не будет это единой точкой отказа при всех возможностях отказоустойчивости Кафки?

В документации сказано, что client обращается в schema registry только один раз — при первом обращении ему необходимо получить схему. После получения схемы из message header извлекается magic byte и схема сохраняется в clients local cache. Следующее обращение к серверу schema registry произойдет только в случае изменения схемы.

Что за message header и magic byte?

Message header - заголовок сообщения(ключ и значение).

А magic byte - так в avro называют значения ключа сообщения:

Я правильно понимаю что avro используется чтобы можно было применять схемы? Если так, то заголовок должен быть про регестри а не про авро. Если нет, хотелось бы пример решаемых проблем конкретно у вас. Думаю, задачу можно описать достаточно абстрактно без раскрытия тайн.

Ещё не очень понятно как обеспечивается безопасность на стороне консьюмера. Он как то должен при проверять поддержку всех доступных схем от regrstry?

Я правильно понимаю что avro используется чтобы можно было применять схемы?

Avro по сути это и есть схема, это механизм валидации сообщения.

Если нет, хотелось бы пример решаемых проблем конкретно у вас.

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

Ещё не очень понятно как обеспечивается безопасность на стороне консьюмера. Он как то должен при проверять поддержку всех доступных схем от regrstry?

А зачем вообще проверять поддержку всех схем? Проверяется валидность сообщения по актуальной схеме. Для каждого топика свои схемы с их версиями. Более того, в schema registry проверяется обратная совместимость новой версии схемы.

Спасибо за статью, используем с Apache NiFi. В глаза бросаются красные подчеркивания на скриншотах…

Спасибо за статью, используем с Apache NiFi.

Благодарю за поддержку!

В глаза бросаются красные подчеркивания на скриншотах…

Мой фирменный почерк.. ;)

Уже давно используем schema registry с protobuf в confluent. Никаких ограничений по сравнению с avro не обнаружили.

А исходя из того, что даже если gRPC ещё не используется, то есть заметная вероятность его использования в будущем, выбор protobuf выглядит более оправданным.

Остальные критерии не столь существенны. Avro чуть компактней, protobuf чуть меньше загружает CPU.

Я так и не понял, в чем преимущество AVRO перед Protobuf. Мы использовали AVRO в далекие годы MapReduce, сейчас работаем с Protobuf, Что мы делаем не так :)?

Сравнивать avro и protobuf не было целью этой статьи. ИМХО использование protobuf для передачи сообщений через kafka избыточно, т.к. protobuf изначально разрабатывался для других целей.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий