Kafka消息的数据类型

12

我在想Kafka主题中可能有哪些类型的数据。

据我所知,在应用程序级别,这是键值对,可以是语言支持的任何类型的数据。

例如,我们向主题发送一些消息,它们可能是json、parquet文件、序列化数据,或者我们只能像处理纯文本格式一样操作这些消息吗?

感谢您的帮助。

2个回答

11

根据你所谈论的是API、线路协议还是磁盘存储,有各种不同的消息格式。

这些Kafka消息格式中的一些在此处的文档中进行了描述。

https://kafka.apache.org/documentation/#messageformat

Kafka有序列化/反序列化或SerDes(发音为Sir-Deez)的概念。

https://en.m.wikipedia.org/wiki/SerDes

一个序列化器是一个函数,它可以接受任何消息并将其转换为使用Kafka协议在线路上传输的字节数组。
反序列化器则相反,它读取 Kafka 线路协议的原始消息字节,并根据您希望接收应用程序看到的方式重新创建消息。
有内置的 SerDes 库可用于字符串、长整型、字节数组、字节缓冲区,以及大量社区 SerDes 库,如 JSON、ProtoBuf、Avro,以及特定于应用程序的消息格式。
您也可以构建自己的 SerDes 库,请参见以下链接:如何在Kafka中创建自定义序列化器?

这意味着我可以通过使用SerDe库将JSON或Avro文件存储在Kafka主题中? - Fateax
是的,可以根据您在运行时配置的 SerDes 库的不同方式来实现。 - Hans Jespersen

3

在这个话题中,它始终只是序列化数据。序列化发生在生产者发送之前,而反序列化则在消费者获取之后进行。序列化器和反序列化器是可插拔的,因此如您所说,在应用程序级别上,它是任何数据类型的键值对。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接