有没有办法从 Kafka 消息中读取任意 JSON 并将该任意 JSON 作为相同内容的 Kafka 消息转发?

Is there a way to read arbitrary JSON from Kafka message and forward that arbitrary JSON as identical content Kafka message?

我的意图是使用 Java(更具体地说是 Quarkus 本机)从可配置流中读取任意 Kafka 消息内容作为 JSON,持久化它,然后最终将新消息写入另一个可配置流使用初始消息中的内容进行流式传输。
所有这些都没有对 JSON 内容进行反序列化,从而使传递的内容对应用程序不透明。

当然也可以是其他格式,比如 Avro,但只要我能让代码处理来自任何流的任何内容,它仍然可以解决问题。

目的是避免构建 POJO 来保存数据,因为数据可以是任何数据。

有没有办法从 Kafka 消息中读取任意 JSON 并将该任意 JSON 作为相同内容的 Kafka 消息转发?

根据您想要实现的目标,您可以使用以下策略。

使用 Kafka org.apache.kafka.common.serialization.StringDeserializer.

以字符串形式读取消息(在签名上使用 String 负载类型或 Message<String>

使用 Kafka org.apache.kafka.common.serialization.ByteArrayDeserializer.

以字节数组形式读取消息(在签名上使用 byte[] 负载类型或 Message<byte[]>

所有这些反序列化器都有对应的序列化器。

请查看 Kafka 指南以获取更多信息:https://quarkus.io/guides/kafka

使用 Vert.x io.vertx.kafka.client.serialization.JsonObjectDeserialize.此策略允许访问任意 JSON 但仍允许访问 JSON 内容。