【发布时间】:2021-11-04 17:35:47
【问题描述】:
我正在开发一个 flink (v.1.13.2) 应用程序,该应用程序应该将一些对象发布到我的 Kafka 代理。 对于模式验证,我使用 Confluent Schema Registry。
我之前在 5.2.0 版本中使用过该库(也尝试过其他 5.x.x 版本):
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-avro-serializer</artifactId>
<!--<version>5.x.x</version>-->
<version>6.2.0</version>
</dependency>
这似乎可行,但是在将架构注册到注册表时出现了奇怪的行为。架构只是“字节”经过调查,我发现“AvroSchemaUtils”中的可疑部分已更改。
所以我尝试将库更新到下一个工作版本。 在我更新到 6.x.x 之后。我收到以下错误:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class io.confluent.kafka.serializers.KafkaAvroSerializerConfig
at io.confluent.kafka.serializers.KafkaAvroSerializer.configure(KafkaAvroSerializer.java:50)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:369)
... 23 more
如何找出这里出了什么问题?
【问题讨论】:
-
如果您共享了生成消息的 Flink 代码,将会很有用。如果 Flink 模式是 序列化之前的字节,那么这就是将被注册的内容
标签: serialization apache-kafka apache-flink avro