聚光灯
无服务器如何处理业务复杂性
无服务器有助于以标准化的方式传达业务复杂性。
Kinesis江苏体彩流 (KDS)用于收集和处理江苏体彩以及大量碎片。我们每秒可以收集千兆字节的江苏体彩,并将其用于多个消费者的实时处理和分析。
江苏体彩流的经典用例是:
对于以上任何一种使用情况,控制各种因素以确保在KDS中使用多个分片时确保平稳运行并确保江苏体彩丢失都是很重要的。在本文中,我将回顾一些可以帮助您顺利实施KDS的常见挑战和“陷阱”。如果您想了解有关KDS是什么以及如何使用它的更多背景知识,请查看此 深入视频 由AWS提供。
在碎片级别上监视KDS性能的最佳方法是打开对KDS的增强监视。这将为您提供更多有用的指标。有用的分片级别指标之一是以下以毫秒为单位的迭代器年龄。
IteratorAgeMilliseconds是针对KDS进行的所有GetRecords调用中最后一条记录的寿命,在指定的时间段内(以毫秒为单位)。年龄是当前时间与流接收GetRecords调用的最后一条记录的时间之间的差。最小值和最大值统计信息可用于跟踪Kinesis消费者应用程序的进度。零值表示正在读取的记录已完全被流捕获。
分片计数是江苏体彩流的关键扩展尺度。分片确定江苏体彩流中吞吐量的容量。可以根据江苏体彩流的使用情况将它们放大或缩小。但是,对于那些很少使用Kinesis的人来说,还有一些默认限制尚不清楚。
扩展江苏体彩流时,您不能:
这些隐藏的限制可以让您深夜思考为什么没有江苏体彩被推送到江苏体彩流。在设计架构灵活且可用时,请确保考虑到这些限制。
分区键是unicode字符串,最大长度为256个字符,可用于按流中的碎片对江苏体彩进行分组。哈希函数用于将分区键映射到128位整数值,并使用哈希键范围将关联的江苏体彩记录映射到分片。分区键可帮助您扩展到一个以上的分片,因此,即使将江苏体彩写入不同的分片,并且需要顺序分区键也可以在传输期间帮助维持顺序。建议使用某些信息(例如UUID)来追溯信息的产生者使用多个分片的最佳实践。分区键也计入总写入大小,并存储在流中,因此请注意严格的有效负载大小。
以最有效的方式使用分区键:
遵循上述建议可以帮助避免使江苏体彩传输麻烦,但是我们如何避免将太多江苏体彩推送到单个分片并使其余分片保持冷的问题。
当具有过多江苏体彩生产的客户端推送到流时,选择作为标识符的ID(例如客户端ID)会适得其反。这可能会导致一些碎片被过度利用,而其他碎片则未被充分利用。
争取至少需要10倍于分区数的分区键。如前所述,如果排序不重要,则可以使用一些随机分区键来消除热碎片和冷碎片。
通过增强的监控,IteratorAgeMillis指标可以显示每个分片上的最旧消息年龄,从而更容易找到热分片。增强的监视功能提供了分片级别指标,而常规监视则无法看到这些分块级别的指标,因此,开启增强的监视功能会产生一定的成本,可以使用AWS CLI,控制台或API来完成。
这些是使用KDS时面临的一些常见挑战,在开发过程中注意这些挑战有助于避免常见的陷阱。