Sam*_*eed 4 amazon-web-services amazon-kinesis
如果在创建 Kinesis 数据流时我指定分片数为 10,并且每次我放置记录时我都会为它分配一个随机分区键,如下所示:
var putRecord = new PutRecord
{
Data = data ?? new byte[0],
StreamName = stream,
PartitionKey = GetRandomPartitionKey()
};
Run Code Online (Sandbox Code Playgroud)
kinesis 将如何决定将记录放入某个分片中,如果唯一分区键的数量大于分片的数量会发生什么?
散列和取模。
分区键经过哈希处理,然后除以分片数。除法的模数决定了要使用的分片。这样,分区键始终使用相同的分片。如果shard的数量改变了,那么分配就会不同。
这是许多系统中常用的方法。例如,Python 字典的内部存储使用此方法为键/值对分配存储。
| 归档时间: |
|
| 查看次数: |
2319 次 |
| 最近记录: |