Deserializers
前言
Custom deserializers
使用Avro反序列化与Kafka消费者
参考资料
前言
Kafka生产者需要序列化程序将对象转换为字节数组,然后发送到Kafka。 同样,Kafka消费者需要使用反序列化器将从Kafka收到的字节数组转换为Java对象。 在前面的示例中,我们假设每个消息的键和值都是字符串,我们在消费者配置中使用了默认的StringDeserializer。
在第3章关于Kafka生产者的过程中,我们了解了如何自定义序列化类型以及如何使用Avro和AvroSerializer根据模式定义生成Avro对象,然后在向Kafka生成消息时对其进行序列化。 我们现在将介绍如何为自己的对象创建自定义反序列化器以及如何使用Avro及其反序列化器。
很明显,用于向Kafka生成事件的序列化程序必须与消耗事件时将使用的反序列化程序匹配。
假如我们使用IntSerializer进行序列化,然后使用StringDeserializer进行反序列化,这很有可能出现意想不到的结果。
这意味着作为开发人员,你需要跟踪用于写入每个主题的序列化程序,并确保每个主题仅包含你使用的反序列化程序可以解析的数据。
这是使用Avro和Schema Repository进行序列化和反序列化的好处之一 —— AvroSerializer可以确保写入特定主题的所有数据都与主题的模式兼容,这意味着它可以通过匹配的反序列化器和模式进行反序列化 。 生产者或消费者方面的兼容性错误将通过适当的错误消息轻松捕获,这意味着我们不需要尝试调试字节数组以查找序列化错误。
我们将首先快速展示如何编写自定义反序列化器,即使这是不太常用的方法,然后我们将继续讨论如何使用Avro反序列化消息键和值的示例。
Custom deserializers
让我们
关于kafka中的反序列化
最新推荐文章于 2023-11-18 15:16:13 发布