Amazon最近公布了旗下Amazon Kinesis Service的更新。在此次更新中,Amazon Kinesis Streams和Amazon Kinesis Firehose服务增加了三个新功能,包括支持Elasticsearch Service Integration(Elasticsearch服务集成)、Shard-Level Metrics(Shard级度量指标),以及Time-Based Iterators(基于时间的迭代器)。
Amazon Elasticsearch服务集成
Kinesis Firehose与Amazon Elasticsearch的集成使得开发者能够将数据从Amazon Kinesis Firehose交付流(Delivery stream)移动至Amazon Elasticsearch服务群集。
随着数据进入Kinesis Firehose交付流,将根据配置进行缓冲,随后通过批量插入的方式将其存入Elasticsearch服务。这些交付流还可以通过AWS管理控制台进行压缩和加密。
这种集成的使用场景包括服务器日志的索引和分析,点击流和社交媒体流量等。AWS产品战略总经理Matt Wood表示,这个新功能“非常适合日志分析和应用程序监视”。
一旦将数据发布至Elasticsearch,随后即可使用诸如Kibana等工具对其进行分析和可视化。
Shard级度量指标
一个Kinesis Stream可包含一个或多个Shard。Kinesis Stream中的Shard代表读写能力。每个Shard可提供1MB/秒数据输入和2MB/秒数据输出。Shard将按照使用小时数收费,每秒钟最多可处理1000条记录。
新提供的Shard级度量指标可供用户了解Kinesis Stream中每个Shard性能的详细信息。总的来说,目前共有6个可用度量指标,每个指标的状态每分钟更新一次。这些度量指标将按照CloudWatch每个指标的定价模型进行收费。
Amazon已经公布了目前Kinesis Streams可用的每个度量指标的详细信息:
- IncomingBytes – 已经成功PUT至Shard的字节数量。
- IncomingRecords – 已经成功PUT至Shard的记录的数量。
- IteratorAgeMilliseconds – 针对一个Shard调用GetRecords所返回的最后一条记录的寿命(以毫秒计)。值为“0”意味着目前正在读取的记录已经完全赶上了流的速度。
- OutgoingBytes – 从Shard获得的字节数量。
- OutgoingRecords – 从Shard获得的记录数量。
- ReadProvisionedThroughputExceeded -通过GetRecords获取的超过每秒5次读取或每秒2MB数据的限制的Shard数量。
- WriteProvisionedThroughputExceeded – 由于超出Shard每秒1000条记录或每秒1MB数据的限制而进行限流后,已经被拒绝的记录数量。
用户可以使用这些信息估算自己的系统性能。例如可以检测上游应用程序发布数据的速度是否过快,超过了下游应用程序(Consuming application)的处理能力进而产生吞吐率瓶颈。
基于时间的迭代器
当应用程序从流中读取数据时,为了以正确的顺序拉取正确的数据,需要追踪数据在流中的位置。在Kinesis Streams中可以使用迭代器实现该功能。在本次更新之前可以使用顺序号、最老记录或最新记录作为迭代器。
在AWS的此次更新中,用户已经可以指定时间戳决定要从哪里开始处理自己的流。这种功能的一个用例是:当下游应用程序经历计划内停机时,发布方可能依然在向流中发布新数据。默认情况下,Kinesis Stream最多可存储24小时的数据,这样消费应用程序就可以通过提供时间戳,从上次中断的地方继续处理流中发布的数据。
来源:InfoQ
聚焦云计算,扫描二维码,关注HostUCan云计算