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 小时的数据,这样消费应用程序就可以通过提供时间戳,从上次中断的地方继续处理流中发布的数据。
查看英文原文: Amazon Releases Kinesis Service Update
感谢侠天对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论