【问题标题】:how to handle burst of streaming data for a very short duration如何在很短的时间内处理突发的流数据
【发布时间】:2021-01-28 16:05:43
【问题描述】:
我们想要开发一个系统,可以处理突发的流数据,1M 事件/秒持续 1 分钟,然后负载将显着降低到 100/秒。
这些 1 分钟的数据突发每天可能发生 5-10 次,我们需要聚合(简单分组)数据并转储到另一个服务。这些聚合需要每 200 毫秒发生一次。
什么是最小成本和最大吞吐量的最佳架构?我看过 google pubsub/p + google dataflow + apache beam 但这似乎需要很长时间才能自动缩放。
欢迎任何进一步探索的建议
【问题讨论】:
标签:
streaming
spark-streaming
google-cloud-dataflow
apache-beam
data-processing
【解决方案1】:
如您所说,您可以将 Pub/Sub 与 Dataflow 一起使用。此数据流管道可能包含以下步骤:
- 从 Pub/Sub 主题读取消息,
- 解析输入消息的 JSON 并生成一个主输出
- 并可选择写入 BigQuery。
当数据将在 Pub/Sub 主题中每秒创建数百万条消息时,Dataflow 会扩展工作人员的数量以处理传入 Pub/Sub 消息的积压,并将管道的系统延迟保持在最佳水平。
我建议检查以下Codelabs,它显示了如何启动 Dataflow 管道、对其进行监控,最后与 Pub/Sub 一起对其进行优化。