我使用Python的
有没有人有想法如何提高吞吐量?
设置:Kinesis Stream是一个具有一个分片的实例。生产者位于专用的AWS EC2实例(t3.medium),位于与Kinesis Stream相同的区域。它创建大约20个字符长度的字符串,并通过
简化代码:
boto.kinesis
模块将记录写入AWS Kinesis。达到的最大吞吐量约为40个puts/秒。然而,根据Kinesis FAQ:
因此,我的当前方法仅达到理论可能性的4%,这似乎非常低。每个分片最多支持1000个PUT记录/秒。
有没有人有想法如何提高吞吐量?
设置:Kinesis Stream是一个具有一个分片的实例。生产者位于专用的AWS EC2实例(t3.medium),位于与Kinesis Stream相同的区域。它创建大约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")
connection.put_records(message_list, "my_stream")
发送100条消息,使用message_list.append({'Data': my_message, 'PartitionKey': str(i)})
。然而,吞吐量甚至下降到30个put/sec。 - Thomas Schreiter