IT虾米网

json之Kafka之Json(最佳实践)

bonelee 2023年11月29日 编程语言 202 0

我需要将 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 或自定义程序,它们从主题读取数据并将数据推送到另一个系统。

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

谢谢

请您参考如下方法:

除了一个伟大的“这取决于”之外没有其他答案 :)

这取决于您对数据的处理方式(“推送到另一个系统”只是处理数据的一个步骤),并且取决于数据的语义和业务意义。

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


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!