消费处理器

更新时间: 2025-08-22 14:15:48

日志服务提供基于消费处理器的数据实时消费功能,通过SPL实现服务端数据处理后消费。本文介绍消费处理器的概念、优势、场景、计费规则及消费目标。

工作原理

基于消费处理器消费是一种通过设置SPL实时处理日志服务数据的方式,适用于第三方软件、多语言应用、云产品、流式计算框架等多种应用场景。SPL是SLS推出的一种高性能数据处理语言,专门用于处理日志的弱结构化特点。其原理是在服务端使用SPL对日志数据进行预处理和清洗,例如执行行过滤、列裁剪、正则提取等操作。经过处理后,客户端接收到的数据已是规整格式。更多关于SPL语法的详情,请参见SPL语法

image

功能优势

  • 通过公网消费,节省流量费用。

    某客户想把日志写入到日志服务后,再通过公网消费日志,过滤后再分发给内部系统。基于SPL消费功能,该客户可以直接在日志服务中实现日志规则过滤,避免将大量无效日志投递给消费者,节省网络流量费用。

  • 节省本地CPU资源,加速计算进程。

    某客户想把日志写入到日志服务后,再消费日志到本地机器进行计算。基于SPL消费功能,该客户可以直接在日志服务中实现SPL计算,降低本地资源消耗。

计费规则

  • 若Logstore的计费模式为按写入数据量计费,基于消费处理器消费将不产生费用,仅从日志服务公网域名所在接口拉取数据时,会产生外网读取流量(按照压缩后的数据量计算)。具体内容,可参见按写入数据量计费模式计费项

  • 若Logstore的计费模式为按使用功能计费,基于消费处理器消费服务会产生服务端计算费用,使用日志服务公网域名可能产生公网流量费用。更多信息,请参见按使用功能计费模式计费项

消费目标

日志服务支持的基于消费处理器消费目标如下表所示。

类型

目标

说明

多语言应用

多语言应用

基于Java、Python、Go等语言的应用基于消费处理器消费组消费日志服务的数据。具体操作,请参见通过API消费通过消费组消费日志

最佳实践:使用SDK基于SPL消费日志

云产品

阿里云Flink

您可以通过阿里云Flink实时计算消费日志服务的数据。具体操作,请参见日志服务SLS

最佳实践:

流式计算

Kafka

如有需求请提工单申请。

注意事项

  • 基于消费处理器消费需要在服务端进行复杂计算。由于SPL计算复杂度及数据特征的差异,数据读取的服务端延迟可能会略有增加(例如处理5MB数据,延迟增加10~100ms之间)。然而,一般情况下,尽管服务端延迟有所增加,但整体端到端延迟(即从数据拉取到本地计算完成的总时间)通常会减少。

  • 基于消费处理器消费在SPL语法错误、源数据字段缺失等情况下,可能会导致获取到的数据缺失或失败,具体说明可以参考错误处理

  • 基于消费处理器消费在配置SPL语句时,SPL语句长度(字符串长度)最大为4KB。

  • 基于消费处理器消费与普通实时消费Shard读取限制相同:其中基于消费处理器消费的Shard读流量是指SPL处理前的原始数据量,具体限制可以参考数据读写

使用限制

限制项

说明

消费处理器个数

每个 Project 下组多创建 100 个 ConsumeProcessor。如果您有更大的使用需求,如有需求请提工单申请。

消费处理器配置中 SPL 长度

每个 SPL 长度不超过 4000 个字符。

消费处理器中 SPL 指令限制

仅支持行处理指令,不支持聚合、逻辑判断等指令。

更新或删除消费处理器后生效时间

修改或删除消费处理器配置,最多一分钟内生效。

常见问题

  • 规则消费的ShardReadQuotaExceed错误怎么处理?

    • 这个错误码是由于Shard读流量超过Quota报错,解决方案:

      • 消费客户端程序遇到此错误可以等待(sleep)后重试。

      • 或者手动分裂Shard,对于Shard分裂后的产生的新数据消费,达到降低每个shard读取速度的效果。

  • 规则消费的流量控制是什么样的?

    • 规则消费的流量控制策略等同于普通消费的流量控制,具体可以参考数据读写。规则消费的流量计算是指SPL处理前的原始数据量:

      • 例如原始数据大小为100MB(压缩后),经过SPL语句 * | where method = 'POST' 过滤后,返回给消费客户端的数据大小为20MB(压缩后),读取流量控制是按照100MB来计算。

  • 使用规则消费后,为什么在项目监控中的“流量/分钟”图表中看到的outflow的流量很低?

    • 因为项目监控中显示的“流量/分钟”的outflow是指SPL处理后的数据量,并非原始数据量,如果SPL语句中包含行过滤、列裁剪等减少数据量的指令时,可能会有outflow低情况出现。

上一篇: 实时消费常见问题 下一篇: 授权RAM用户操作消费处理器
阿里云首页 日志服务 相关技术圈