Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring/Avro-使用合流模式注册表_Java_Apache Kafka_Avro_Spring Kafka_Confluent Schema Registry - Fatal编程技术网

Java Spring/Avro-使用合流模式注册表

Java Spring/Avro-使用合流模式注册表,java,apache-kafka,avro,spring-kafka,confluent-schema-registry,Java,Apache Kafka,Avro,Spring Kafka,Confluent Schema Registry,我正在尝试使用Confluent schema注册表,下面是我在Github()中找到的一些示例 当使用者和生产者与模型共享同一名称空间而不是其工作名称空间时 当使用者位于具有不同名称空间但具有相同类(名称和属性方面)的不同项目中时,它不工作 合流Avro反序列化程序可以使用正确的值反序列化到GenericData$Record类,但不能将其强制转换到实际对象 我正在尝试: @资料 @AllArgsConstructor 公共类用户{ 字符串名; 智力年龄; } ... @KafkaListe

我正在尝试使用Confluent schema注册表,下面是我在Github()中找到的一些示例

当使用者和生产者与模型共享同一名称空间而不是其工作名称空间时

当使用者位于具有不同名称空间但具有相同类(名称和属性方面)的不同项目中时,它不工作

合流Avro反序列化程序可以使用正确的值反序列化到GenericData$Record类,但不能将其强制转换到实际对象

我正在尝试:


@资料
@AllArgsConstructor
公共类用户{
字符串名;
智力年龄;
}
...
@KafkaListener(topics=“users”,groupId=“group_id”)
公共无效消费(消费者记录记录){
log.info(String.format(“已消费消息->%s”,record.value().getName());
}
上述代码在铸造问题上失败

当我向道具添加specific.avro.reader=true时,它也会失败

这难道不是模式注册表的全部目的吗?它是一个中心repo,这样数据就可以在不同的项目甚至不同的语言(python、java、.net等)中被模式反序列化


我缺少什么?

问题是您的用户类不是Avro类


您应该使用Avro-Maven/Gradle插件来生成类,而不是使用Lombok,并且名称空间和完整模式确实需要对齐。我发现最好的管理方法是开发和发布完全独立于实际卡夫卡代码的模型

请显示stacktrace你得到的是的,这就是问题所在,我假设Avro作为模式可以反序列化为类似Json的“类似”类。现在我知道我必须生成一个Avro类。谢谢