我正在尝试学习aws kinesis流,并根据aws kinesis流文档。 每个分片可以摄取高达1MB /秒或1000个记录/秒,并允许读取最多2MB /秒和每秒5个事务进行读取。
因此我怀疑是/ strong> 如果我的数据包大小是250kb,并且每个分片只允许1MB写入,那么为了获得每秒200条消息的吞吐量,我将需要大约50个分片(每个aws分片计算器为49,如下图所示)。但是在使用AWS提供的分片计算器的同时,它还要求消费者的数量,如果我提供,(比如3个消费者),它会将分片数从50增加到74,我的问题是,添加消费者如何改变需要的分片数量?
那么有人可以在这里解释一下逻辑。 感谢。
答案 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个分片。