【问题标题】:Kafka - Json (best practices)Kafka - Json(最佳实践)
【发布时间】:2018-09-15 16:21:57
【问题描述】:

我需要将 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 条记录完全取决于实现。也许这是个好主意,也许不是,但这更多地取决于你的情况。

标签: json go apache-kafka


【解决方案1】:

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

这取决于您对数据执行的操作(“推送到另一个系统”只是对数据执行操作的一个步骤),并且取决于数据的语义和业务含义。

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

【讨论】:

  • 感谢您的快速回复...在我的情况下,消息是独立的。
猜你喜欢
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-07
  • 2010-09-28
  • 2015-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多