存储流式数据——快速、廉价、可靠且适合批量消费

Store streaming data - fast, cheap, reliable and good for batch consumption

我有一个 (spring-boot) 网络服务,它为每个请求生成一个 json 响应。此响应在返回给查询用户的同时,还需要在某个地方存档(以便我们知道我们对用户的响应)。

该服务需要支持 4,000 requests/second。因此,我们需要快速的归档方法。存档数据稍后将由 map-reduce(批处理)作业使用。

我想知道使用哪种解决方案 - Kafka、S3 或任何其他解决方案。该服务已部署到 AWS。因此 AWS 内的解决方案是理想的。

要求如下:

没有data retirement plan,即数据需要一直保存到时间结束。

您推荐哪些解决方案?

您的某些要求(例如 "should not be too expensive")有点含糊。最后,您将需要自己根据所有具体要求评估服务。

考虑到这一条件,我会考虑将数据流式传输到 Kenesis,目标是将数据存档到 S3。我建议阅读 AWS 的 this blog post 以了解如何实现这一目标。