卡夫卡 - 杰森(最佳实践)

时间:2018-04-05 18:36:08

标签: json go apache-kafka

我需要将RESTAPI调用的输出推送到KAFKA。 Restapi返回json输出,其中包含支持信息以及数据输出到 json.RawMessage

type Response struct {
    RequestID     string `json:"requestId"`
    Success       bool   `json:"success"`
    NextPageToken string `json:"nextPageToken,omitempty"`
    MoreResult    bool   `json:"moreResult,omitempty"`
    Errors        []struct {
        Code    string `json:"code"`
        Message string `json:"message"`
    } `json:"errors,omitempty"`
    **Result   json.RawMessage `json:"result,omitempty"`**
    Warnings []struct {
        Code    string `json:"code"`
        Message string `json:"message"`
    } `json:"warning,omitempty"`
}

json.RawMessage拥有200条记录的数据。

问题: 1.作为制作人,我应该将整个原始信息作为一条消息放入kafka主题吗?或解组(解析)json原始消息并将每条消息记录作为消息(在这种情况下将有200条记录) 2.如果我解组(解析),数据将不再是json格式。

我这里没有提供任何代码......我的代码可以在GO,python中

该主题的最终消费者是Spark或自定义程序,它从主题中读取数据并将数据推送到另一个系统。

请让我知道最佳设计/方法是什么?

由于

1 个答案:

答案 0 :(得分:0)

没有其他答案,而不是一个伟大的“它取决于”:)

它取决于你正在对数据做什么(“推送到另一个系统”只是对数据做一些事情的一步),它取决于数据的语义和业务含义。

如果您的200条消息中的每条消息都独立于其他消息,那么将其拆分并将其作为单独的消息放在Kafka上是有道理的。