我们如何将大尺寸有效载荷压缩到 kinesis Streams 中?

how to we compress large size payloads into kinesis Streams?

我有一个 JSON 5 MB 的有效载荷,我需要使用 put 记录将其推送到 Kinesis 流。由于 Kinesis 数据大小限制为 1 MB,我应该遵循哪些方法来压缩数据以及步骤是什么

如果您的 json 负载在压缩后仍然太大,那么您通常有 两个选择:

  1. 将其拆分 成多个较小的负载。消费者必须能够根据您的有效载荷的 part id 重建有效载荷。

  2. 存储流外的大负载数据,例如在 S3 中,只在消息中发送大文件的元数据(例如 s3 路径)。

使用哪种压缩取决于您的流媒体制作者。更具体地说,他们支持哪些压缩算法。

但最终,如果这两个选项中的任何一个都不适合您,那么您可能需要考虑 Kinesis 不是完成这项工作的正确工具。我认为 Apache Kafka 可以支持大于 1MB 的消息。