我正在嘗試使用來自 apache-kafka 二進制檔案的 kafka-console-producer 生成訊息,并在 Spring Boot 中從消費者設定中使用。消費者使用 avro 模式。
當訊息以 json 格式生成時,我的消費者拋出例外 - “無法序列化”。
我找到了一個使用“Confluent Platform 7.1”的解決方案,它有 kafka-avro-console-producer。它支持 avro,但它是企業版。
有沒有辦法使用 apache-kafka 本身和 kafka-console-producer 來生成/使用帶有 avro 模式的訊息?
uj5u.com熱心網友回復:
kafka-console-producer默認情況下只接受 UTF8 字串。在內部,它默認使用 StringSerializer
kafka-avro-console-consumer 包裝另一個,它是源可用的,而不是Enterprise。您至少需要下載 Confluent kafka-avro-serializerJAR 檔案和依賴項才能使用它生成 Avro 資料,但這也需要您使用 Schema Registry。
如果您只是想生成沒有注冊表的 Avro 二進制資料,您可以使用 Avro BinaryEncoder 類,但是,這將要求您在任何消費者中還需要自己的反序列化器,而不是使用 Confluent 提供的反序列化器(同樣,免費,不是 Enterprise )
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/466497.html
