Comments 11
А как наличие схем влияет на производительность? Не будет это единой точкой отказа при всех возможностях отказоустойчивости Кафки?
В документации сказано, что client обращается в schema registry только один раз — при первом обращении ему необходимо получить схему. После получения схемы из message header извлекается magic byte и схема сохраняется в clients local cache. Следующее обращение к серверу schema registry произойдет только в случае изменения схемы.
Я правильно понимаю что avro используется чтобы можно было применять схемы? Если так, то заголовок должен быть про регестри а не про авро. Если нет, хотелось бы пример решаемых проблем конкретно у вас. Думаю, задачу можно описать достаточно абстрактно без раскрытия тайн.
Ещё не очень понятно как обеспечивается безопасность на стороне консьюмера. Он как то должен при проверять поддержку всех доступных схем от regrstry?
Я правильно понимаю что avro используется чтобы можно было применять схемы?
Avro по сути это и есть схема, это механизм валидации сообщения.
Если нет, хотелось бы пример решаемых проблем конкретно у вас.
А у нас задачи самые обычные - одна система отдает, другая получает. Разные команды, разные подразделения. Именно поэтому хотим прикрутить валидацию формата сообщений. Не хочется чтобы проблемы с валидацией вылазили на стороне системы получателя.
Ещё не очень понятно как обеспечивается безопасность на стороне консьюмера. Он как то должен при проверять поддержку всех доступных схем от regrstry?
А зачем вообще проверять поддержку всех схем? Проверяется валидность сообщения по актуальной схеме. Для каждого топика свои схемы с их версиями. Более того, в schema registry проверяется обратная совместимость новой версии схемы.
Спасибо за статью, используем с Apache NiFi. В глаза бросаются красные подчеркивания на скриншотах…
Уже давно используем schema registry с protobuf в confluent. Никаких ограничений по сравнению с avro не обнаружили.
А исходя из того, что даже если gRPC ещё не используется, то есть заметная вероятность его использования в будущем, выбор protobuf выглядит более оправданным.
Остальные критерии не столь существенны. Avro чуть компактней, protobuf чуть меньше загружает CPU.
Я так и не понял, в чем преимущество AVRO перед Protobuf. Мы использовали AVRO в далекие годы MapReduce, сейчас работаем с Protobuf, Что мы делаем не так :)?
Apache Avro — на светлой стороне Кафки