tencent cloud

云函数

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
相关概念
工作原理
产品优势
应用场景
相关产品
购买指南
计费概述
计费方式
计费项与计费方式
函数算力支持
免费额度
产品定价
计费示例
欠费与停服说明
快速入门
使用控制台创建一个事件函数
操作指南
配额管理
函数管理
Web 函数管理
日志管理
并发管理
触发器管理
函数 URL
自定义域名
版本管理
别名管理
权限管理
运行实例管理
插件管理
监控与告警管理
网络配置
层管理
执行配置
扩展存储管理
DNS 缓存配置
资源托管模式管理
近离线资源托管模式
工作流
触发器
触发器概述
触发器事件消息结构汇总
API 网关触发器
COS 触发器
CLS 触发器
定时触发器
CKafka 触发器
Apache Kafka 触发器
MQTT 触发器
触发器配置描述
MPS 触发器
CLB 触发器说明
云 API 触发器
开发指南
基本概念
测试云函数
环境变量
依赖安装
使用容器镜像
使用 Docker 安装依赖
错误类型与重试策略
死信队列
云函数接入数据库
自动化部署
云函数状态码
常见错误码解决方法
开发者工具
Serverless Web IDE
函数间调用 SDK
第三方工具
代码开发
Python
Node.js
Golang
PHP
Java
Custom Runtime
使用镜像部署函数
Web 框架部署
通过命令行完成框架部署
快速部署 Egg 框架
快速部署 Express 框架
快速部署 Flask 框架
快速部署 Koa 框架
快速部署 Laravel 框架
快速部署 Nestjs 框架
快速部署 Nextjs 框架
快速部署 Nuxtjs 框架
快速部署 Django 框架
实践教程
最佳实践概述
云产品联合解决方案
业务开发相关实践
实时音视频 TRTC
对象存储 COS
消息队列 CKafka
日志服务CLS
负载均衡 CLB
视频处理 MPS
内容分发网络 CDN
云数据仓库 PostgreSQL
云点播 VOD
短信 SMS
Elasticsearch Service
定时任务
视频处理
客户案例
腾讯在线教育
在线教育行业案例
游戏聊天系统
腾讯互娱国际(IEGG)
API 文档
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
函数和层的状态说明
Data Types
Error Codes
SDK文档
常见问题
通用问题
Web 函数相关问题
计费相关问题
网络相关问题
日志相关问题
SCF 工具相关问题
事件处理相关问题
API 网关触发器相关问题
相关协议
Service Level Agreement
联系我们
词汇表

Apache Kafka 触发器说明

PDF
聚焦模式
字号
最后更新时间: 2024-12-25 10:34:16
云函数 SCF 现已支持将 Apache Kafka 作为事件触发源,实现 Kafka 消息的批量消费和处理。

Apache Kafka 简介

Apache Kafka 是一个开源事件流平台,支持数据管道和流分析等工作负载。云函数 SCF 支持将业务函数与自建的 Apache Kafka 集群结合使用,支持的 Kafka 集群包括跨地域的 CKafka 集群、其他云厂商上的 Kafka 集群或通过 Confluent Cloud 等程序管理的类 Kafka 集群(如 Azure 的 EventHub)。
云函数 SCF 支持基于 Kafka 协议框架的事件源,支持批量消费,并可通过最大批量消息数、最长等待时间、重试次数等参数控制批处理行为。

自建 Apache Kafka 触发器特点

自建 Apache Kafka 触发器具有以下特点:
Pull 模型:云函数的后台模块作为消费者,连接 Kafka 实例并消费消息。在后台模块获取到消息后,会将消息封装到数据结构中并调用指定的函数,将消息数据传递给云函数。
同步调用:自建 Apache Kafka 触发器使用同步调用类型来调用函数。有关调用类型的更多信息,请参见 调用类型
说明:
对于运行错误(含用户代码错误和 Runtime 错误),自建 Apache Kafka 触发器会按照您配置的重试次数进行重试。默认重试10000次。
对于系统错误,自建 Apache Kafka 触发器会采用指数退避的方式持续重试,直至成功为止。

自建 Apache Kafka 触发器属性

触发器名称:支持2~60个字符,支持 a-zA-Z0-9-_。必须以字母开头,以数字或字母结尾,且一个函数下不支持同名的多个定时触发器。
Bootstrap Servers:配置需连接消费的自建 Apache Kafka 实例地址,支持多个 Bootstrap Servers,支持IP+端口域名+端口
Topic:输入已创建的 Apache Kafka 实例的Topic。
Consumer Group:选择已创建的 Apache Kafka 实例的 Consumer Group。如果指定的消费组不存在,函数将自动创建新消费组。推荐使用独立消费组,不和已有的业务混用,以免影响已有的消费收发。
安全协议:Apache Kafka 实例所使用的安全协议,当前支持PLAINTEXTSASL_SSLSASL_PLAINTEXT
身份验证机制:Apache Kafka 实例所使用的身份验证机制,当前支持PLAINSCRAM-SHA-256SCRAM-SHA-256,若您的实例未设置身份验证,可选择
用户名及密码:选择了身份验证机制的情况下,需输入允许访问该实例的用户名及密码。
最大批量消息数:拉取并批量投递给云函数时的最大消息数,目前支持最高配置为10000。结合消息大小、写入速度等因素影响,每次触发云函数并投递的消息数量不一定能达到最大值,而是处在1 - 最大消息数之间的一个变动值。
起始位置:触发器消费消息的起始位置,当前支持从最新位置开始消费。
重试次数:函数发生运行错误(含用户代码错误和 Runtime 错误)时的最大重试次数。
最长等待时间:单次触发的最长等待时间。示例:用户配置了最大批量消息数为1000,最长等待时间为60秒。假设10秒后,云函数已经采集了1000条消息,则直接触发函数执行;假设过了60秒,云函数只采集到50条消息,也会触发函数执行。
注意:
当前已创建的自建 Apache Kafka 触发器仅支持对“最大批量消息数”、“重试次数”、“最长等待时间”三个配置项进行编辑。

自建 Apache Kafka 消费及消息传递

由于自建 Apache Kafka 消息无主动推送能力,需要消费方通过拉取方式进行消费。因此,在配置自建 Apache Kafka 触发器后,云函数后台会通过启动自建 Apache Kafka 消费模块,作为消费者,并在自建 Apache Kafka 中创立独立的消费组进行消费。
云函数后台的消费模块在消费到消息后,会根据一定的超时时间累积消息数量大小最大批量消息数等信息,组合为事件结构并发起函数调用(同步调用)。相关限制说明如下:
超时时间:目前云函数后台的消费模块的超时时间为60秒,避免时延过长才进行消费。例如,Topic 的消息写入很少,消费模块在60秒内没有凑够最大批量消息数的消息,则依然会发起函数调用。
同步调用的事件大小限制:6MB,详情请参见 限制说明。如果 Topic 的消息很大,例如单条消息就已经达到6MB,由于同步调用的6MB限制,传递给云函数的事件结构中只会有一条消息,而不是用户配置的最大消息个数。
最大批量消息数:同自建 Apache Kafka 触发器属性,由用户设置,目前支持最高配置为10000。
云函数后台的消费模块会循环这个过程,且会保证消息消费的顺序性,即前一批消息消费完(同步调用),再进行下一批消息的消费。
说明:
在这个过程中,每次组合的消息数量不一定相同,即每个事件结构内的消息个数在1 - 配置的最大消息个数之间。如果配置的最大消息数过大,有可能出现事件结构内的消息个数始终不会达到最大消息数的情况。
在云函数中获取到事件内容后,可选择循环处理的方式,确保每一条消息都得到处理,而不应假定每次传递的消息个数均是恒定的。
云函数会使用标准 Kafka 协议获取您所指定的 Topic 下的分区数,同时后台消费模块自动创建相同数量的消费者,若未获取到对应的分区数,将默认创建20个消费者。

常见问题

自建 Apache Kafka 消息堆积了很多该如何处理?

在您配置自建 Apache Kafka 触发器后,云函数后台会通过启动消费模块作为消费者,在自建 Apache Kafka 中创立独立的消费组进行消费,且消费模块的数量等于 Topic 的分区(partition)数量。如果堆积了很多消息,则需要提升消费能力。提升消费能力的方法如下:
优化云函数的运行时间。云函数的运行时间越短,消费能力就越强。若云函数的运行时间变长(例如,云函数内需要写 DB,DB 的响应变慢),则消费速度就会下降。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈