Apache Avro

KATEGORİ

Kafka’daki veri akışlarını düzenlemek ve veriyi paylaşmak için kullanılan bir format ve şema tanımlama aracıdır. Dil bağımsız bir veri serileştirme formatıdır. Farklı programlama dillerinde yazılmış uygulamalar arasında kolayca veri paylaşımını sağlar. Avro, şemaları kullanarak veriyi serileştirir. Bu, veri yapılarındaki değişiklikleri yönetmeyi kolaylaştırır. Yeni bir alan eklemek veya mevcut bir alanı güncellemek gibi değişiklikler, şema evrimini takip eden uygulamalar üzerinde uyumluluk sağlar. Avro, veriyi küçük boyutlu ve hızlı bir şekilde serileştirmek için tasarlanmıştır. Bu, ağ trafiğini minimize etmeye ve depolama maliyetini azaltmaya yardımcı olur. Kafka, yüksek performans ve düşük gecikme ile çalıştığından, küçük boyutlu ve hızlı serileştirme Avro’nun Kafka ile uyumlu olmasını sağlar. Avro, dinamik bir tip sistemi kullanır. Bu, veri tiplerinin şemada tanımlandığından ve şema, serileştirilmiş veriyle birlikte gönderildiğinden, uygulamaların esnek bir şekilde veri türlerini anlamalarına olanak tanır. Esneklik, farklı uygulama sürümleri veya farklı müşterilerin farklı şema versiyonlarını destekleme konusunda avantaj sağlar. Avro’nun uygun maliyetli bir çözüm olması, büyük veri işleme sistemlerinde ve Kafka üzerindeki veri paylaşımında önemlidir. Ayrıca, birleşik veri şemalarını destekleyerek aynı Kafka konusu üzerinde farklı türlere sahip mesajları kolayca destekler.

Projemizin pom.xml dosyasına aşağıdaki gibi ekleriz:

<dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro</artifactId>
    <version>1.10.0</version>
</dependency>

Avro java modeli oluşturmak için avro-maven-plugin kullanılır.

 <plugin>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro-maven-plugin</artifactId>
                <version>${avro.version}</version>
                <configuration>
                    <stringType>String</stringType>
                </configuration>