我想知道我们可以在 Kafka 主题中拥有哪些类型的数据。
正如我在应用程序级别所知道的,这是一个键值对,这可能是语言支持的类型数据。
例如,我们向主题发送一些消息,可以是一些 json、parquet 文件、序列化数据,还是我们只像使用纯文本格式一样处理消息?
谢谢你的帮助。
最佳答案
有多种消息格式,具体取决于您是在谈论 API、有线协议(protocol)还是磁盘存储。
此处的文档中描述了其中一些 Kafka 消息格式
https://kafka.apache.org/documentation/#messageformat
Kafka 有串行器/解串器或 SerDes(读作 Sir-Deez)的概念。
https://en.m.wikipedia.org/wiki/SerDes
Serializer 是一个函数,它可以接收任何消息并将其转换为使用 Kafka 协议(protocol)在网络上实际发送的字节数组。
Deserializer 做相反的事情,它读取 Kafka 线路协议(protocol)的原始消息字节部分,并在您希望接收应用程序看到它时重新创建一条消息。
有用于 Strings、Long、ByteArrays、ByteBuffers 的内置 SerDes 库以及用于 JSON、ProtoBuf、Avro 以及应用程序特定消息格式的大量社区 SerDes 库。
您可以构建自己的 SerDes 库,也可以查看以下内容
How to create Custom serializer in kafka?
关于apache-kafka - Kafka 消息的数据类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44988938/