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

作者:
发布于: 2021-6-10
归档于:

标签:Serverless云函数

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 触发。

  1. 功能优势
  2. TDMQ 能够高效支持百万级消息生产和消费,海量消息堆积且消息堆积容量不设上限,支撑腾讯计费所有场景;性能方面,单集群 QPS 超过10万,同时在时耗方面有保护机制来保证低延迟,可轻松应对的海量数据触发函数。
  3. TDMQ 提供丰富的消息类型,涵盖普通消息、顺序消息(全局顺序 / 分区顺序)、分布式事务消息、定时消息,满足各种严苛触发器函数的场景下的高级特性需求。
  4. TDMQ API 支持 Java、C++、Go 等多语言以及HTTP 协议,可扩展更多语言的接入,还支持原生 Kafka API 协议的接入。用户可利用消息队列的基础功能进行消息的生产和消费,无需修改代码即可完成到 TDMQ 迁移与函数触发。

03. TDMQ 触发器业务应用场景

  1. 异步解耦

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

  1. 削峰填谷

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

04. TDMQ 触发器创建

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

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

第二步:配置 TDMQ 触发器

注:如无相关授权,需按照控制台指引对 EventBridge。

第三步:完成创建

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

TDMQ 触发器现已开放公测,欢迎大家使用体验!识别下方 👇 二维码,进入产品交流群


传送门:

欢迎访问:Serverless 中文网,您可以在 最佳实践 里体验更多关于 Serverless 应用的开发!