【问题标题】:Kafka data types of messagesKafka 数据类型的消息
【发布时间】:2017-12-12 19:46:32
【问题描述】:

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

感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      这里的文档中描述了其中一些 Kafka 消息格式

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

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

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

      序列化器是一个函数,它可以接收任何消息并将其转换为字节数组,然后使用 Kafka 协议在网络上实际发送。

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

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

      您可以构建自己的 SerDes 库,也可以查看以下内容

      How to create Custom serializer in kafka?

      【讨论】:

      • 这意味着我可以使用 SerDe 库将 JSON 或 Avro 文件存储在 Kafka 主题中?
      • 是的。有几种不同的方式,具体取决于您在运行时配置的 SerDes 库。
      猜你喜欢
      • 1970-01-01
      • 2018-01-18
      • 2019-09-23
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多