查看原文
其他

Serverless 云函数支持 TDMQ 触发器 - 更高效的消息队列触发方式

陈涛 腾讯云云函数 2022-05-10

01.

Serverless 与消息队列生态结合

消息队列 MQ 是 Serverless 事件驱动场景下必要的解耦中间件也是云函数最重要的触发源之一。TDMQ 是一款基于 Apache 顶级开源项目 Pulsar 自研的金融级分布式消息中间件。其计算与存储分离的架构设计,使得它具备极好的云原生和 Serverless 特性,用户按量使用,无需关心底层资源。它拥有原生 Java 、 C++、Python、Go 等多种 API,同时支持 Kafka 协议以及 HTTP 协议方式接入,可为分布式应用系统提供异步解耦和削峰填谷的能力,具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。

通过 TDMQ 触发函数可最大程度的衔接消息队列两端的数据上下游,帮助用户实现 Serverless 体系下的异步事件解耦和削峰填谷的能力,帮助开发者解决生产环境对接函数等问题,提供稳定、高效的事件触发。


02.

TDMQ 消息队列触发器

1. 触发方式

TDMQ 触发器底层采用 EventBridge 承载,通过 EventBridge Connector 和 EventBridge Target 触发至函数,Connector 部分由 EventBridge 承载,支持时间匹配、事件筛选、事件多函数分发等高级能力。

同时,TDMQ 触发器可通过函数控制台快速完成创建,无需理解复杂的 EventBridge 配置逻辑即可完成 TDMQ 触发。


2. 功能优势

  • TDMQ 能够高效支持百万级消息生产和消费,海量消息堆积且消息堆积容量不设上限,支撑腾讯计费所有场景;性能方面,单集群 QPS 超过 10 万,同时在时耗方面有保护机制来保证低延迟,可轻松应对的海量数据触发函数。

  • TDMQ 提供丰富的消息类型,涵盖普通消息、顺序消息(全局顺序 / 分区顺序)、分布式事务消息、定时消息,满足各种严苛触发器函数的场景下的高级特性需求。

  • TDMQ API 支持 Java、C++、Go 等多语言以及HTTP 协议,可扩展更多语言的接入,还支持原生 Kafka API 协议的接入。用户可利用消息队列的基础功能进行消息的生产和消费,无需修改代码即可完成到 TDMQ 迁移与函数触发。


03.

TDMQ 触发器业务应用场景

1. 异步解耦

以交易引擎为例,交易系统引擎作为最核心的系统,每笔交易订单数据需要被几十几个下游业务系统关注,包括物品批价、道具发货、积分、流计算分析等等,多个系统对消息的处理逻辑不一致,单个系统不可能去适配每一个关联业务。此时,TDMQ 可实现高效的异步通信和应用解耦,确保主站业务的连续性。

       

2. 削峰填谷

企业不定时举办的一些营销活动,新品发布上线,节日抢红包等等,往往都会带来临时性的流量洪峰,这对函数并发的考验是十分巨大的。TDMQ 此时便可以承担一个中间缓冲器的角色,将上游突增的请求集中收集,下游可以根据自己的实际处理能力来消费请求消息。


04.

3 步创建 TDMQ 触发器

第一步:新建相关函数资源

  • 云函数控制台:https://console.cloud.tencent.com/scf

注:目前 TDMQ 触发器支持北京,上海,广州地域,其他地域持续开放中,如有更多地域支持请提交工单反馈:https://console.cloud.tencent.com/workorder/category。


第二步:配置 TDMQ 触发器

  • 如无相关授权,需按照控制台指引对 EventBridge 进行授权。


第三步:完成创建

完成创建后,在控制台会展示出默认创建好的相关事件集和事件规则详情,可点击链接对底层 EventBridge 资源进行查看。



TDMQ 触发器现已开放公测,欢迎大家使用体验!

识别下方 👇 二维码,进入产品交流群



推荐阅读


One More Thing


欢迎进入千人 QQ 群 (871445853) 交流 Serverless!

  • GitHub: github.com/serverless

  • 官网: cloud.tencent.com/product/serverless-catalog

点击「阅读原文」,了解更多 TDMQ 触发器产品详情。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存