我使用 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)
.
简化代码:
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")