首页 > 云计算 > 公有云实践 > 提升无服务器流处理工作负载的吞吐量和监控能力
Amazon Lambda事件源映射简化了流式工作负载的处理层构建。将您的事件源连接到Lambda函数,以使用内置集成来过滤和批处理消息,并轻松处理错误。参加本次会话,了解如何使用新推出的功能来提高新旧处理工作负载的吞吐量和可观察性,而无需更改函数代码。探索如何在使用Apache Kafka事件源时满足最严格的处理需求,以及新的增强指标如何改善对Amazon SQS、Amazon Kinesis、Kafka和Amazon DynamoDB事件源的可见性。
以下是小编为您整理的本次演讲的精华。
讲者Anton通过类比选择高性能汽车来阐明数据处理系统中吞吐量和加速的重要性。他指出,就像赛车需要较高的最高时速和快速加速一样,数据流应用程序必须能够处理大量数据(吞吐量)并快速适应数据速率的峰值(加速)。
他解释了数据流是高效摄取和处理来自点击流、物联网(IoT)设备、金融行情和交易日志等源的大量连续、有序和时间敏感数据的架构组件。他阐述了处理数据峰值的挑战 - 过度配置会导致支付过多,而配置不足会导致积压和延迟处理。
Anton随后深入探讨了利用Amazon Lambda、Amazon Kinesis和Amazon Managed Streaming for Apache Kafka(Amazon MSK)等服务提高无服务器流工作负载的吞吐量的技术。他介绍了常见的技术,如并行化数据处理、减少函数持续时间、过滤无关消息和批量处理消息。
关于并行化数据处理,他解释说这可以在不同层面实现。在Lambda并发级别,增加并发执行环境的数量可自动处理更多并行处理。此外,优化代码效率和分配更多内存来提高CPU可以减少处理时间。他举了一个真实的例子,一位客户处理来自10,000个IoT传感器每月产生近5亿条消息的数据,通过在调用Lambda函数之前过滤掉无关消息,实现了92%的成本节约。
Anton阐述,批量处理消息是另一种提高效率的技术。与单独处理消息不同,批量处理消息并调整批量窗口和大小可以显著提高吞吐量。他强调了实验的重要性,因为每个工作负载都是独一无二的,最佳批量大小可能会有所不同。
对于Amazon Kinesis,Anton解释了分片、吞吐量容量、增强扇出等消费模式、用于扩展的并行化因子以及监控指标的概念。他强调Kinesis支持两种模式:一种是完全自动模式,由亚马逊云科技管理分片数量;另一种是手动模式,由用户决定分片数量。Kinesis消费者可以从流中的所有分片读取数据,消费可以通过两种模式进行:共享吞吐量和增强扇出(EFO)。共享吞吐量模式允许最多5个不同的消费者从Kinesis拉取数据,吞吐量为每秒5次读取,约2MB/s在消费者之间共享。EFO模式旨在支持低延迟和高吞吐量工作负载,将数据推送给消费者,为每个消费者提供专用的2MB/s吞吐量,延迟低至70毫秒。
关于扩展,Anton解释说,当为Kinesis流启用事件源映射时,Amazon Lambda会创建与分片数量相等的轮询器数量。每个轮询器以大约每秒一次的速率轮询分片。为了提高吞吐量,用户可以增加流中的分片数量,从而增加并发性和并行化程度。或者,用户可以利用并行化因子配置属性,允许在不添加新分片的情况下,扩展每个分片的并发执行环境数量。
对于Apache Kafka和Amazon MSK,Anton介绍了分区、分区键、扩展轮询器、新的预配置模式(用于在峰值时提供可预测的性能)以及监控偏移量延迟。他将Kinesis分片与Kafka分区进行了类比,解释说生产者使用分区键来确定记录将存储在哪个分区中,确保每个分区内的数据有序。
当从Kafka集群消费时,Lambda最初会创建一个单一的轮询器,该轮询器可以并发调用多个Lambda函数实例。根据传入的工作负载和偏移量延迟,Lambda会自动扩展或缩减轮询器的数量,增长直到执行环境的数量与主题中分区的数量相匹配,从而保持数据顺序。
Anton随后介绍了最近推出的Kafka预配置模式,旨在处理具有可预测性能的峰值、延迟敏感型工作负载。在此模式下,用户可以配置始终运行的最小和最大轮询器数量,即使在低流量期间也是如此。这允许在发生峰值时更快地扩展和降低延迟,因为预配置的轮询器已经可以在几秒钟内处理数据。他建议从单个预配置轮询器开始,并根据工作负载的吞吐量要求进行实验,以确定最佳数量。
关于可观察性,Anton强调了从函数和事件源的角度监控指标的重要性。他宣布在Lambda中推出了开箱即用的EventSource Mapping指标,提供了有关摄取消息状态的见解。这些指标包括poll_deviant_event_counts和invoked_event_counts,分别允许用户跟踪从数据源拉取的事件数量和发送到Lambda函数的事件数量。此外,用户还可以观察被过滤事件的数量,从而评估其过滤策略的有效性。
Anton总结了可用于提高无服务器流工作负载吞吐量的多种技术。他重申了并行化数据处理、减少函数持续时间、过滤无关消息和批量处理消息的重要性。对于Kinesis,他强调使用分区键均匀分布记录、在生产者端缓冲、在适用时增加分区和分片数量、利用并行化因子以及对于低延迟工作负载使用增强扇出。对于Kafka和MSK,他建议使用预配置模式来实现峰值时的可预测性能,并优雅地处理故障以避免缩减问题。
在整个演讲过程中,Anton提供了真实世界的示例和数据点来支持他的建议。他引用了一个客户案例,过滤掉无关消息导致成本节约92%,以及另一个案例,单个预配置轮询器可以处理高达5MB/s的Kafka吞吐量。这些实际案例有助于加强他所倡导技术的有效性。
总之,Anton的全面指南阐述了利用亚马逊云科技的无服务器功能构建高度可扩展、高性价比的数据流管道,能够处理不可预测的突发数据量,同时保持较高的吞吐量性能。适当的分区、并行化、过滤、批量处理和监控成为他富有见地的演讲中强调的关键技术。
我们正处在 Agentic AI 爆发前夜。 2025 亚马逊云科技中国峰会提出,企业要从 " 成本优化 " 转向 " 创新驱动 " ,通过完善的数据战略和 AI 云服务,把握全球化机遇。亚马逊将投入 1000 亿美元在 AI 算力、云基础设施等领域,通过领先的技术实力和帮助“中国企业出海“和”服务中国客户创新“的丰富经验,助力企业在 AI 时代突破。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70038688/viewspace-3090501/ ,如需转载,请注明出处,否则将追究法律责任。