亚马逊流动症碎片数计算公式怎么用?

问题描述 投票:0回答:1

我正在努力学习aws kinesis流,按照aws kinesis流的文档。每个shard的摄取量最高为1MBsec或1000 recordssec,允许读取量最高为2MBsec,读取时每秒5个事务。

因此我的疑问是:。如果我的数据包大小是250kb,每个shard只允许写1MB,那么为了获得每秒200条消息的吞吐量,我将需要大约50个shard(根据aws shard计算器,49个,如下图所示).但是在使用AWS提供的shard计算器时,它还要求提供消费者的数量,如果我提供,(例如3个消费者),它将shard数量从50增加到74,NOw我的问题是,增加消费者如何改变所需的shard数量?enter image description here

所以,谁能解释一下这里的逻辑,谢谢。

amazon-web-services amazon sharding amazon-kinesis
1个回答
2
投票

AWS定义了以下公式来计算shard的数量。

Number_of_shards = max(incoming_write_bandwidth_in_KiB1024, outgoing_read_bandwidth_in_KiB2048)

在你的情况下。

写入带宽(单位:KiB)。 =

avg.data size in kb * records per second
                                = 250 * 200 = 50000

读取带宽(单位:KiB)。 =

incoming_write_bandwidth_in_KiB * consumers
                                =  50000 * 3 = 150000

那么,碎片的数量

= max (50000/1024,150000/2048)
                 = max (48.8 , 73.2)
                 = 73.2 

因而74块碎片。

© www.soinside.com 2019 - 2024. All rights reserved.