![](/img/trans.png)
[英]Using Schema Registry from Confluent with Avro and Kafka in Spring Boot Applications
[英]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.