【发布时间】:2023-03-14 18:51:02
【问题描述】:
我是分布式流处理 (Spark) 的新手。我已经阅读了一些教程/示例,这些教程/示例涵盖了背压如何导致生产者响应过载的消费者而减速。给出的经典示例是摄取和分析推文。当出现意外的流量峰值导致消费者无法处理负载时,他们会施加背压,而生产者会通过调低速率来做出响应。
我没有真正看到的是在实践中使用了哪些方法来处理由于整个管道容量较低而无法立即处理的大量传入实时数据?
我想这个问题的答案取决于业务领域。对于某些问题,只删除该数据可能没问题,但在这个问题中,我想重点关注我们不想丢失任何数据的情况。
由于我将在 AWS 环境中工作,我的第一个想法是在 SQS 队列或 Kinesis 流中“缓冲”多余的数据。是在实践中这么简单,还是有更标准的流式解决方案来解决这个问题(可能是 Spark 本身的一部分)?
【问题讨论】:
标签: amazon-web-services spark-streaming amazon-sqs amazon-kinesis backpressure