Amazon Kinesis是提供流式计算的云服务。
Architecture架构:
producer_a Kinesis Application 1 -> Amazon S3
producer_b -> Amazon Kinesis ->
... Kinesis Application 2 -> DynamoDB
producer_x
Terms:
1 Data Record
数据单元,存储在Amazon Kinesis Stream,由序列号,分区键和data blob组成,data blob最大为50KB。
2 Stream
是一个有序的data records序列。
3 Shard
是在Stream中唯一的可识别的data record集合。每个shard支持5个reads per second或者2MB read per second。1000个writes per second或者1MB write per second。所以Stream的处理能力就是根据shard数量算出来的。
4 Partition Key
不同的data records就是根据这个键来决定进入哪个Shard的。
5 Sequence Number
当客户端调用client.putRecord时,Kinesis会根据partition key来决定是哪个shard,然后分配这个shard的当前序列号加一,注意这个序列号是在shard中唯一的,递增的。
6 Amazon Kinesis Application
这个就是消费者,输入就是读取Shard中的data records。输出可以放入S3,也可以放入DynamoDB,还可以继续向另一个Kinesis产生新的data records。
决定你的Kinesis需要多少个Shards?
number_of_shards = max(incoming_write_bandwidth_in_KB/1000, outgoing_read_bandwidth_in_KB/2000)
outgoing_read_bandwidth_in_KB = incoming_write_bandwidth_in_KB multiplied by the number_of_consumers.
原文:http://blog.csdn.net/hongchangfirst/article/details/54406912
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst