gpt4 book ai didi

apache-kafka - 如何在kafka中定义多个序列化器?

转载 作者:行者123 更新时间:2023-12-05 02:20:59 25 4
gpt4 key购买 nike

例如,我发布和使用不同类型的 Java 对象。对于每个对象,我都必须定义自己的序列化程序实现。我们如何在“serializer.class”属性下的 kafka 消费者/生产者属性文件中提供所有实现?

最佳答案

我们有一个类似的设置,在不同的主题中使用不同的对象,但在一个主题中始终使用相同的对象类型。我们使用 ByteArrayDeserializer 随 Java API 0.9.0.1 一起提供,这意味着或消息消费者只能获得 byte[]作为消息的值部分(我们始终使用 String 作为键)。特定主题的消息消费者做的第一件事是调用正确的反序列化器来转换 byte[] .你可以使用 apache commons helper class .很简单。

如果你喜欢让 KafkaConsumer为你做反序列化,你当然可以自己写 Deserializer . deserialize您需要实现的方法将主题作为第一个参数。将它用作提供必要的反序列化器的映射的键,然后你就可以开始了。我的直觉是,在大多数情况下,无论如何您都将执行正常的 Java 反序列化。

第二种方法的缺点是您需要一个通用的父类(super class)来为您的所有消息对象提供参数化ConsumerRecord<K,V>。适本地。然而,对于第一种方法,它是 ConsumerRecord<String, byte[]>反正。但是然后你转换 byte[]到你需要的对象就在正确的地方,只需要一个 Actor 就在那里。

关于apache-kafka - 如何在kafka中定义多个序列化器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36973644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com