簡體   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