栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

适用于AVRO基本类型的Serde类

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

适用于AVRO基本类型的Serde类

更新 (5.5及更高版本)

Confluent版本5.5通过PrimitiveAvroSerde(cf. https://github.com/confluentinc/schema-registry/blob/5.5.x/avro-serde/src/main/java/io/confluent/kafka/streams添加了对原始Avro类型的本地支持/serdes/avro/PrimitiveAvroSerde.java)

原始答案 (版本5.4及更高版本):

这是一个已知问题。原始Avro类型无法与Confluent的AvroSerdes配合使用,因为Serdes只能与GenericAvroRecord和一起SpecificAvroRecord使用。

比较https://github.com/confluentinc/schema-registry/tree/master/avro-serde/src/main/java/io/confluent/kafka/streams/serdes/avro。

因此,基于KafkaAvroSerializer和构建您自己的SerdeKafkaAvroDeserializer是正确的方法。为了能够将其作为默认Serde传递到配置中,您不能使用,Serdes.serdeFrom因为由于泛型类型擦除而导致类型信息丢失。

但是,您可以实现自己的扩展Serde接口的类,并将自定义类传递给config:

public class MySerde extends Serde<Integer> {    // use KafkaAvroSerializer and KafkaAvroDeserializer and cast `Object` to `Integer`}config.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, MySerde.class);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407384.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号