首页 > 解决方案 > spring应用中使用confluent schema registry和avro serializer,json数据输入怎么做

问题描述

目前,我使用了spring cloud stream github示例,但是我不知道如何通过提供现有的json数据将手动键入的对象转换为json格式。我可以使用来自 json 数据的一些工具来推断 avro 模式。但是问题是我不想在import使用 avro 模式时使用从类中推断出来的 POJO,而是我想使用现有的 json 数据。我也对 application/json 部分感到困惑,当我使用时 curl -X POST,也许有办法在 http 请求中提供数据(在发送消息部分添加注释)。另外,解释一下@ResquestMapping, 和@Enablebinding,@StreamListener什么时候使用它们。

标签: apache-kafkaavrospring-cloud-streamconfluent-schema-registry

解决方案


首先,您必须使用 KafkaAvroSerializer 而不是一些 StringSerializer 或 JSON 来定义生产者

从现有的 json 数据

您将使用来自现有 json 数据(如 Jackson 或 Gson)的 a 通过解析将 JSON 转换为 POJO。

问题是我不想使用从类中推断出来的 POJO

POJO 定义类。他们没有被推断出来

使用 avro 模式,而不是我想使用现有的 json 数据。

JSON 和 Avro 是不同的格式。您必须使用一些工具来翻译它们或自己手动解析 JSON 并创建 Avro 记录

我也对 application/json 部分感到困惑,当我使用 curl -X POST 时,也许有办法在 http 请求中提供数据(在发送消息部分添加注释

是的,标头在请求中定义了额外的元数据

curl -H 'Content-Type:application/json`

@StreamListener,何时使用它们

当您使用事件时,而不是发送它们


推荐阅读