我使用python的boto.kinesis
模块将记录写入AWS Kinesis。达到的最大吞吐量约为40次/秒。但是,根据Kinesis FAQ:
每个分片每秒最多可支持1000个PUT记录。
所以我目前的方法只达到4%理论上可行的,这似乎非常低。
有谁知道如何提高吞吐量?
设置:Kinesis Stream是一个带有一个分片的实例。生产者位于与Kinesis Stream位于同一区域的专用AWS EC2实例(t3.medium)上。它创建大约20个字符长度的字符串,并通过boto.kinesis.Connection.put_record("my_stream", my_message)
将它们发送到Kinesis Stream。
简化代码:
from boto import kinesis
import time
connection = kinesis.connect_to_region(REGION)
stream = connection.create_stream("my_stream", shard_count=1)
time.sleep(60) # wait a minute until stream is created
for i in range(NUM_MESSAGES):
my_message = "This is message %d" % i
connection.put_record(my_message, "my_stream", "partition_key")
答案 0 :(得分:2)
http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html
限制是记录/秒 您应该使用putRecords来提高写入吞吐量。你这样做的方法是在同一个调用中放置多个记录。所以你继续追加,最后你做了记录。