Kafka 消息的数据类型

Kafka data types of messages

我想知道我们可以在 Kafka 主题中拥有哪些类型的数据。 据我所知,在应用程序级别,这是一个键值对,这可能是该语言支持的类型的数据。 例如,我们向主题发送一些消息,可以是一些 json、parquet 文件、序列化数据,还是我们仅像使用纯文本格式一样对消息进行操作?

谢谢你的帮助。

关于主题,它始终只是序列化数据。序列化发生在生产者发送之前,反序列化发生在消费者获取之后。序列化器和反序列化器是可插入的,所以正如您在应用程序级别所说的那样,它是您想要的任何数据类型的键值对。

有多种消息格式,具体取决于您谈论的是 API、有线协议还是磁盘存储。

此处的文档中描述了其中一些 Kafka 消息格式

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

Kafka 具有 Serializer/Deserializer 或 SerDes(发音为 Sir-Deez)的概念。

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

Serializer 是一种函数,它可以接收任何消息并将其转换为使用 Kafka 协议在线路上实际发送的字节数组。

反序列化器做相反的事情,它读取 Kafka 有线协议的原始消息字节部分,并按照您希望接收应用程序看到的方式重新创建消息。

有用于 Strings、Long、ByteArrays、ByteBuffers 的内置 SerDes 库和大量用于 JSON、ProtoBuf、Avro 以及应用程序特定消息格式的社区 SerDes 库。

您可以构建自己的 SerDes 库,也请参阅以下内容