Kafka数据类型的消息

时间:2017-07-08 17:27:35

标签: apache-kafka file-format kafka-producer-api

我想知道我们在Kafka主题中可以拥有哪些类型的数据。 据我所知,在应用程序级别,这是键值对,这可能是语言支持的类型数据。 例如,我们向主题发送一些消息,可能是一些json,镶木地板文件,序列化数据,或者我们只使用纯文本格式来处理消息?

谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

根据您是在谈论API,有线协议还是磁盘存储,有各种消息格式。

这些文档中描述了一些Kafka Message格式

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

Kafka具有串行器/解串器或SerDes(发音为Sir-Deez)的概念。

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

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

反序列化器执行相反的操作,它读取Kafka有线协议的原始消息字节部分,并重新创建一条消息,因为您希望接收应用程序看到它。

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

您可以构建自己的SerDes库以及以下

How to create Custom serializer in kafka?

答案 1 :(得分:2)

关于这个话题,它总是只是序列化的数据。在获取之后,在消费者中发送和反序列化之前,生成器中会发生序列化。序列化程序和反序列化程序是可插入的,因此正如您在应用程序级别所说的那样,它是您想要的任何数据类型的键值对。