2

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

我有根据输入流大小和输出流大小以及使用消费者应用程序计数动态增加和减少流大小的场景。

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

需要对此有所了解。

谢谢

4

5 回答 5

5

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

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

它可以手动(cli)或自动(部署的 WAR)运行,以随您的应用程序向上/向下扩展。

于 2015-03-30T21:20:29.997 回答
2

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

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

于 2016-10-23T23:51:15.733 回答
0

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

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

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

于 2014-07-18T13:57:58.820 回答
0

我创建了有助于自动缩放运动流的 npm 模块。

您可以在Amazon Kinesis Scaling中找到详细信息

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

于 2017-07-06T19:42:03.973 回答
0

updateShardCount自 2016 年 11 月起,您可以使用函数、Lambda 函数和 Amazon Cloud Watch 警报轻松扩展您的 Amazon Kinesis 流。

您可能会发现这篇文章非常有用。

于 2017-03-02T13:38:55.740 回答