繁体   English   中英

使用 leftJoin 合并 2 个 kstreams 主题时如何修复反序列化错误?

[英]How to fix the deserialization error when merging 2 kstreams topics using leftJoin?

我是卡夫卡的新手。 我正在做一个个人项目,我想写 2 个不同的 Avro 主题并使用 leftJoin 合并它们。 合并它们后,我也想向 KSQL 数据库生成相同的消息。 (我还没有实施那部分)。

我正在使用 Kafka 模板生成 2 个 Avro 主题并将它们转换为 kstreams 以合并它们。 我还使用 KafkaListener 来打印其中的任何消息,并且该工作正在运行。 这是我遇到问题的地方:实际上有 2 个。 在任何一种情况下,它都不会在合并的主题中产生任何消息。

  1. 如果我从 kstream 中删除了consumed.with() ,那么它会抛出默认密钥 Serde 错误。

  2. 但是如果我保留它,它就会抛出一个反序列化错误。

我什至在我的application.propertiesmain()内的streamConfig中提供了默认序列化和反序列化,但它仍然无法正常工作。

有人可以帮我合并 2 个 Avro 主题吗? 是否因为我使用的是 Avro 模式而发生错误? 我应该改用 JSON 吗? 我想使用模式,因为消息的值部分将包含多个值。

例如: {Key: Value} = {company: {inventory_id, company, color, inventory}} = {Toyota: {0, RAV4, 50,000}}

以下是所有文件的链接application.propertiesDefaultKeySerdeError.txtDeserializationError.txtFilterStreams.javaInventory.avscPricing.avscMergedAvro.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM