Amazon Kinesis动态流调整大小

时间:2014-07-02 12:22:30

标签: amazon-web-services amazon-kinesis

我正在开发Amazon Kinesis Api和Kinesis客户端库,我创建了一个生产者来将数据放入流中,并有多个消费者应用程序从该流中读取数据。

我有根据输入流大小和输出流大小动态增加和减少流大小的方案,并使用Consumer应用程序的计数。

我找到了一些有用的来源来计算来自亚马逊网站的碎片数量,但是没有得到如何计算。来源网址是: http://docs.aws.amazon.com/kinesis/latest/dev/how-do-i-size-a-stream.html

需要对此有所了解。

由于

5 个答案:

答案 0 :(得分:4)

AWS支持建议查看以下开源项目。它是由他们的解决方案架构师之一创建的。

https://github.com/awslabs/amazon-kinesis-scaling-utils

可以手动运行(cli)或自动运行(部署WAR)以扩展/缩小应用程序。

答案 1 :(得分:2)

您可以查看Themis,这是一个支持自动缩放Kinesis流的框架,由Atlassian开发。该工具非常易于配置,带有Web UI,并支持不同的自动缩放模式(例如,主动和被动自动缩放)。

(在旧帖子中发帖道歉,但对于发现此帖子的读者来说,答案可能仍然很有趣。)

答案 2 :(得分:0)

您可以使用Amazon Cloud Watch服务动态调整流的大小,您只需使用不同的指标(如put.byteRecords和get.byteRecords)创建基于流的警报,并检测警报状态。

之后根据这些警报状态为" ALARM",使用重新分片增加流的容量,您可以执行相同的方案来减少流的容量。

有关详细信息,请访问此链接:http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-api-java.html

答案 3 :(得分:0)

自2016年11月起,您可以使用updateShardCount功能,Lambda功能和Amazon Cloud Watch Alarms轻松扩展您的Amazon Kinesis流。

您可能会发现this post非常有用。

答案 4 :(得分:0)

我创建了npm模块,它有助于自动缩放kinesis流。

您可以在Amazon Kinesis Scaling

找到详细信息
  

这是npm模块,根据当前的交通需求来扩展亚马逊运动。此模块持续监控kinesis流中的流量,并根据需要拆分和合并分片。   例如。如果你的应用程序需要处理5000 req / sec,那么你需要有5个分片。由于您的应用程序上的流量可能会有很大差异,因此碎片数量也会变化。   如果您的应用程序需要在高峰时间处理20000 req / sec,那么您需要有20个分片,但在其他时间您可能只需要5个分片。