【问题标题】:Is there a way to read arbitrary JSON from Kafka message and forward that arbitrary JSON as identical content Kafka message?有没有办法从 Kafka 消息中读取任意 JSON 并将该任意 JSON 作为相同内容的 Kafka 消息转发?
【发布时间】:2021-09-23 17:32:10
【问题描述】:

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

当然,它可以是其他格式,例如 Avro,但只要我可以使代码与来自任何流的任何内容一起工作,它仍然可以解决问题。

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

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

【问题讨论】:

  • 好像要使用ByteArray

标签: java apache-kafka quarkus


【解决方案1】:

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

使用 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 @987654328 将消息作为 Vert.x JsonObject 读取(在 Message 的签名上使用 io.vertx.core.json.JsonObject 有效负载) @。此策略允许访问任意 JSON,但仍允许访问 JSON 内容。

【讨论】:

    猜你喜欢
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 2020-11-14
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多