【问题标题】:Better way to send kafka message : JsonNode or Map<String, UserModel>?发送 kafka 消息的更好方法:JsonNode 或 Map<String, UserModel>?
【发布时间】:2020-05-07 04:32:54
【问题描述】:

我是使用 Spring Boot 的 Kafka 新手。

我们可以在 Json / String / Streams / JsonNode / Map 中发送 kafka 消息。所以现在在我的项目中,我想将 Map 发送给我的一位消费者。

因此,我们首先将 map 转换为 JsonNode,然后发送 JsonNode。在消费者端,我们会将这个 JsonNode 反序列化为 map,然后再使用。

我尝试发送地图,我可以通过 kafka 发送。当在消费者时,我得到 Json String。

所以我的问题是在我的要求中实现的最佳方式是什么?

【问题讨论】:

    标签: java json apache-kafka kafka-consumer-api


    【解决方案1】:

    我的意见 - 都不是

    使用明确定义您的类型的 Avro(或 Protobuf)模型类和the Schema Registry


    换句话说,Kafka 存储字节。你可以pick any serialization format,你最好也压缩一下

    【讨论】:

    • 如果我使用 Avro 格式但我有 Map 对象,那么如何发送 Map 对象?
    • 您阅读过 Avro 文档吗? “Avro 支持六种复杂类型:记录、枚举、数组、maps、联合和固定”。要清楚 - Avro“映射”与 JSON 对象(无序键值对)相同。 Avro 记录是具有保证字段的地图
    猜你喜欢
    • 1970-01-01
    • 2019-01-16
    • 2018-02-26
    • 2018-10-21
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    相关资源
    最近更新 更多