Ken*_*thJ 7 amazon-web-services amazon-kinesis
我是Kinesis的新手,所以这看起来像是一个非常基本的问题,但我无法找到Kinesis流中读写事务之间实际差异的明确答案.
来自Amazon Kinesis Limits的相关部件:
- GetShardIterator每个打开的分片每秒最多可提供5个事务.
- GetRecords可以检索10 MB的数据.
- 每个分片每秒最多可支持5个事务进行读取,最高总数据读取速率为每秒2 MB.
- 每个分片每秒最多可支持1024条记录进行写入,最高总数据写入速率为每秒1 MB(包括分区键).此写入限制适用于PutRecord和PutRecords等操作.
它清楚地提到每个分片每秒有5次读取和1024次写入.为什么读取比写入更昂贵,或者这里有一个关键的Kinesis概念我还没有掌握?
小智 6
Kinesis使您能够将粒度数据提取到流中并读取批量记录以处理信息.因此,每秒可读取的兆字节数量比每个分片所获得的读取事务数量要重要得多.例如,您可能有一个繁忙的网站每分钟生成数千个视图,而一个EMR集群可以处理您的访问日志.在这种情况下,您将拥有比读取事件更多的写入事件.这同样适用于点击流,金融交易,社交媒体订阅源,IT日志和位置跟踪事件等.
常见的用例是多个制作人将他们的活动写入Kinesis.例如,多个Web服务器,多个浏览器或多个移动设备.每个制作人可以逐个或多达500个事件的一批事件来编写多个事件.
另一方面,事件的消费者是少数过程.简单的用例是"慢"阅读器从kinesis流中读取批量事件(例如,每10秒10,000个事件)并将它们作为单个日志文件写入S3.
在这种情况下,您正在编写数千个事件(大多数是逐个),但是您在这段时间内每秒只读取一次(或上例中为10秒)所有添加到流中的事件.因此,写入与读取的比率为1024:1.
在大多数情况下,来自kinesis流的少数消费者而不是单个读者.例如,在上面的"慢速"阅读器之上,您可以拥有一个"快速"阅读器,它可以扫描传入事件并过滤它们或汇总它们的值,以便能够实时做出反应.这种快速阅读器可识别欺诈交易并阻止它们,或计算操作仪表板的实时计数器.
相对于写入次数,读取的数量仍然很小.在这种情况下,"快速"阅读器将每1/4秒读取一次,以允许对事件进行近实时反应.因此,写入与读取的比率将为1024:5(= 1 + 4)
| 归档时间: | 
 | 
| 查看次数: | 3321 次 | 
| 最近记录: |