Kafka:produce/consume 结构化数据
Kafka: produce/consume structured data
我是 Kafka 的新手,正在使用 Java 对其进行测试。
据我所知,我 produce/consume 使用 Kafka 的消息是字符串。
是否有可能对结构化数据(例如列表或地图)进行一些简单的绑定,或者是在 serializing/deserializing 中手动执行此操作的最佳方式(例如使用 JSON) ?
As far as I see
不清楚您找到的是什么示例,但 Kafka 存储字节。 StringSerializer
只是 many Serializer interfaces available 之一,将 (UTF-8) 字符串转换为字节。
do some easy binding to structured data (e.g. a list or map)
例如,Confluent 和 Apicurio 提供 Avro and/or Protobuf 序列化程序,用于 Java 与其架构注册表产品集成的对象的二进制序列化。
serializing/deserializing it manually (e.g. in using JSON)?
已经有一个基于 Jackson 的 built-in JsonSerializer
供 Kafka 客户端使用或构建到 Streams 中的 Serde。 (需要依赖 connect-api
,而不仅仅是 kafka-clients
)。
Spring-Kafka也有自己的JsonSerializer
class.
我认为您正在寻找的是 Streams API:https://kafka.apache.org/documentation/streams/
如果您是 Kafka 的新手,这里有一些很好的解释,很好地介绍了整个领域。
我怀疑您最终会看到这里的“数据类型和序列化”部分:https://kafka.apache.org/31/documentation/streams/developer-guide/datatypes.html,所以当您对这个主题感到满意时,就去看看那个。
我是 Kafka 的新手,正在使用 Java 对其进行测试。
据我所知,我 produce/consume 使用 Kafka 的消息是字符串。
是否有可能对结构化数据(例如列表或地图)进行一些简单的绑定,或者是在 serializing/deserializing 中手动执行此操作的最佳方式(例如使用 JSON) ?
As far as I see
不清楚您找到的是什么示例,但 Kafka 存储字节。 StringSerializer
只是 many Serializer interfaces available 之一,将 (UTF-8) 字符串转换为字节。
do some easy binding to structured data (e.g. a list or map)
例如,Confluent 和 Apicurio 提供 Avro and/or Protobuf 序列化程序,用于 Java 与其架构注册表产品集成的对象的二进制序列化。
serializing/deserializing it manually (e.g. in using JSON)?
已经有一个基于 Jackson 的 built-in JsonSerializer
供 Kafka 客户端使用或构建到 Streams 中的 Serde。 (需要依赖 connect-api
,而不仅仅是 kafka-clients
)。
Spring-Kafka也有自己的JsonSerializer
class.
我认为您正在寻找的是 Streams API:https://kafka.apache.org/documentation/streams/
如果您是 Kafka 的新手,这里有一些很好的解释,很好地介绍了整个领域。
我怀疑您最终会看到这里的“数据类型和序列化”部分:https://kafka.apache.org/31/documentation/streams/developer-guide/datatypes.html,所以当您对这个主题感到满意时,就去看看那个。