[英]How to fix the deserialization error when merging 2 kstreams topics using leftJoin?
我是卡夫卡的新手。 我正在做一个个人项目,我想写 2 个不同的 Avro 主题并使用 leftJoin 合并它们。 合并它们后,我也想向 KSQL 数据库生成相同的消息。 (我还没有实施那部分)。
我正在使用 Kafka 模板生成 2 个 Avro 主题并将它们转换为 kstreams 以合并它们。 我还使用 KafkaListener 来打印其中的任何消息,并且该工作正在运行。 这是我遇到问题的地方:实际上有 2 个。 在任何一种情况下,它都不会在合并的主题中产生任何消息。
如果我从 kstream 中删除了consumed.with()
,那么它会抛出默认密钥 Serde 错误。
但是如果我保留它,它就会抛出一个反序列化错误。
我什至在我的application.properties
和main()
内的streamConfig
中提供了默认序列化和反序列化,但它仍然无法正常工作。
有人可以帮我合并 2 个 Avro 主题吗? 是否因为我使用的是 Avro 模式而发生错误? 我应该改用 JSON 吗? 我想使用模式,因为消息的值部分将包含多个值。
例如: {Key: Value}
= {company: {inventory_id, company, color, inventory}}
= {Toyota: {0, RAV4, 50,000}}
以下是所有文件的链接: application.properties
、 DefaultKeySerdeError.txt
、 DeserializationError.txt
、 FilterStreams.java
、 Inventory.avsc
、 Pricing.avsc
和MergedAvro.avsc
。 如果你们想让我把它们放在下面,请告诉我。 非常感谢您的提前帮助!
https://gist.github.com/Arjun13/b76f53c9c2b4e88225ef71a18eb08e2f
查看DeserializationError.txt文件,问题似乎是您没有提供架构注册表的凭据。 即使您在application.properties文件中提供了它们,它们也不会进入 serdes 配置,因此如果您将basic.auth.user.info
配置添加到serdeConfig
map,您应该已经准备就绪。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.