簡體   English   中英

Spring / Avro - 使用融合模式注冊表

[英]Spring / Avro - using confluent schema registry

我正在嘗試使用 Confluent schema-registry 並按照我在 Github 中找到的一些示例( https://github.com/gAmUssA/springboot-kafka-avro )為我工作。

當消費者和生產者與其工作模型共享相同的命名空間時。

當使用者位於具有不同命名空間但具有相同類(名稱和屬性)的不同項目中時,它不工作。

Confluent Avro 反序列化器可以使用正確的值反序列化為 GenericData$Record 類,但無法將其轉換為實際對象。

我正在嘗試這個:


@Data
@AllArgsConstructor
public class User {
    String name;
    int age;
}
...

@KafkaListener(topics = "users", groupId = "group_id")
public void consume(ConsumerRecord<String, User> record) {
    log.info(String.format("Consumed message -> %s", record.value().getName()));
}

上面的代碼在鑄造問題上失敗。

當我將 specific.avro.reader=true 添加到道具時,它也失敗了。

這不是模式注冊表的全部目的,成為一個中央存儲庫,以便數據可以通過不同項目甚至不同語言(python、java、.net 等)中的模式反序列化?

我錯過了什么?

問題是您的 User 類不是 Avro 類。

您應該使用 Avro Maven / Gradle 插件來生成您的類,而不是使用 Lombok,並且命名空間和完整模式確實需要對齊。 我發現最好的管理方法是開發和發布與實際 kafka 代碼完全分開的模型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM