如何亚马逊流kinesis碎片计数计算器公式工作

时间:2017-12-11 06:14:48

标签: amazon-web-services amazon sharding amazon-kinesis

我正在尝试学习aws kinesis流,并根据aws kinesis流文档。  每个分片可以摄取高达1MB /秒或1000个记录/秒,并允许读取最多2MB /秒和每秒5个事务进行读取。

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

那么有人可以在这里解释一下逻辑。 感谢。

1 个答案:

答案 0 :(得分:2)

AWS定义了以下公式来计算分片数量

分片数=最大值(incoming_write_bandwidth_in_KiB / 1024,outgoing_read_bandwidth_in_KiB / 2048)

就您而言,

incoming_write_bandwidth_in_KiB =

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

outgoing_read_bandwidth_in_KiB =

incoming_write_bandwidth_in_KiB * consumers
                                =  50000 * 3 = 150000

因此,碎片数量

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

,因此还有74个分片。