Переводим нашу платформу с JSON на Apache Avro и Schema Registry. Заменяем сериализаторы и десериализаторы, генерируем классы из схем и разбираем разницу между GenericRecord и SpecificRecord.Практика на реальном проекте. Читать далее
Hamba avro is a go lang encoder/decoder implementation of the avro codec specification. In affected versions a well-crafted string passed to avro's `github.com/hamba/avro/v2.Unmarshal()` can throw a `fatal error: runtime: out of memory` which is unrecoverable and can cause denial of service of the consumer of avro. The root cause of the issue is that avro uses part of the input to `Unmarshal()` to determine the size when creating a new slice and hence an attacker may consume arbitrary amounts of memory…
Почему использование JSON как формата сообщений может стать узким местом в высоконагруженных системах? Что такое Apache Avro и Schema Registry?Простым языком об этих технологиях, их работе и причинах их возникновения. Читать далее
Здесь опишу пример сериализции данных через Avro и передача в Kafka. Для Avro есть сериализатор данных для Kafka, он использует в своей работе реестр (registry) схем и поддерживает версионность на отдельном развернутом сервере. Здесь будет только сериализатор, а версионность если потребуется, то например может быть реализована своя, например в БД. Читать дальше →