Lambda 中的事件轮询器扩展模式
您可以为 Kafka 事件源映射选择两种事件轮询器扩展模式之一:
按需模式(默认)
当您最初创建 Amazon MSK 事件源时,Lambda 会分配默认数量的事件轮询器来处理 Kafka 主题中的所有分区。Lambda 根据消息负载自动扩展或缩减事件轮询器的数量。
Lambda 会按一分钟的间隔时间来评估主题中所有分区的偏移滞后。如果偏移延迟太高,则分区接收消息的速度比 Lambda 处理消息的速度更快。如有必要,Lambda 会在主题中添加或删除事件轮询器。添加或删除事件轮询器的自动扩缩过程在评估后的三分钟内发生。
如果目标 Lambda 函数受到限制,Lambda 会减少事件轮询器的数量。此操作通过减少事件轮询器可以检索和发送到函数的消息数来减少函数的工作负载。
预调配模式
对于需要微调事件源映射吞吐量的工作负载,您可以使用预调配模式。在预调配模式下,您可以为预调配事件轮询器数量定义最小和最大限制。这些预调配事件轮询器专用于事件源映射,并且可以通过响应式自动扩缩处理意外的消息激增。对于具有严格性能要求的 Kafka 工作负载,我们建议您使用预调配模式。
在 Lambda 中,事件轮询器是一种能够处理高达 5 Mbps 吞吐量的计算单位。作为参考,假设您的事件源产生的平均有效载荷为 1 MB,并且平均函数持续时间为 1 秒。如果有效载荷未进行任何转换(例如筛选),则单个轮询器可以支持 5 Mbps 的吞吐量和 5 次并发 Lambda 调用。使用预调配模式会产生额外成本。有关定价估算,请参阅 Amazon Lambda 定价
注意
使用预调配模式时,您无需创建 Amazon PrivateLink VPC 端点或在网络配置过程中授予关联权限。
在预调配模式下,最小事件轮询器数量 (MinimumPollers
) 的可接受值范围介于 1 到 200 之间(含首尾)。事件轮询器的最大数量 (MaximumPollers
) 的可接受值范围介于 1 到 2000 之间(含首尾)。MaximumPollers
必须大于或等于 MinimumPollers
。此外,为了保持分区内的有序处理,Lambda 會将 MaximumPollers
限制为主题中的分区数量。
有关选择适当的最小和最大事件轮询器值的更多详细信息,请参阅使用预调配模式时的最佳实践和注意事项。
您可以使用控制台或 Lambda API 为 Amazon MSK 事件源映射配置预调配模式。
为现有的 Amazon MSK 事件源映射配置预调配模式(控制台)
-
打开 Lamba 控制台的函数页面
。 -
选择具有要为其配置预调配模式的 Amazon MSK 事件源映射的函数。
-
选择配置,然后选择触发器。
-
选择要为其配置预调配模式的 Amazon MSK 事件源映射,然后選擇编辑。
-
在事件源映射配置下,选择配置预调配模式。
-
对于最少事件轮询器,输入介于 1 到 200 之间的值。如果未指定值,则 Lambda 将选择默认值 1。
-
对于最大事件轮询器,输入介于 1 到 2000 之间的值。此值必须大于或等于最少事件轮询器的值。如果未指定值,则 Lambda 将选择默认值 200。
-
-
选择保存。
您可以使用 EventSourceMappingConfiguration 中的 ProvisionedPollerConfig 对象,以编程方式配置预调配模式。例如,以下 UpdateEventSourceMapping CLI 命令将 MinimumPollers
值配置为 5,将 MaximumPollers
值配置为 100。
aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{"MinimumPollers": 5, "MaximumPollers": 100}'
配置预调配模式后,您可以通过监控 ProvisionedPollers
指标来观测事件轮询器对您的工作负载的使用情况。有关更多信息,请参阅 事件源映射指标。
要禁用预调配模式并返回默认(按需)模式,您可以使用以下 UpdateEventSourceMapping CLI 命令:
aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{}'
使用预调配模式时的最佳实践和注意事项
事件源映射的最小和最大事件轮询器的最佳配置取决于应用程序的性能需求。建议您从默认最小事件轮询器开始,以设定性能配置文件的基准。根据观测到的消息处理模式和所需的性能配置文件调整配置。
对于流量激增且性能需求严格的工作负载,请增加最少的事件轮询器数以处理消息突然激增。要确定所需的最少事件轮询器数,请考虑工作负载的每秒消息数和平均有效载荷大小,并使用单个事件轮询器的吞吐能力(最高 5 Mbps)作为参考。
为了保持分区内的有序处理,Lambda 会将最大事件轮询器数限制为主题中的分区数量。此外,您的事件源映射可以扩展到的最大事件轮询器数取决于函数的并发设置。
激活预调配模式时,更新您的网络设置以删除 Amazon PrivateLink VPC 端点和关联的权限。