消息队列 TDMQ

一款基于 Pulsar,云原生 Serverless 化,高性能、强一致的分布式消息队列

消息队列_TDMQ 简介

 消息队列 TDMQ(Tencent Distributed Message Queue,下文中简称TDMQ)是一款基于 Apache 顶级开源项目 Pulsar 自研的金融级分布式消息中间件。其计算与存储分离的架构设计,使得它具备极好的云原生和 Serverless 特性,用户按量使用,无需关心底层资源。它拥有原生 Java 、 C++、Python、GO 等多种 API,可为分布式应用系统提供异步解耦和削峰填谷的能力,具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。TDMQ 目前已应用在腾讯云金融专区计费绝大部分场景,包括支付主路径、实时对账、实时监控、大数据实时分析等方面。  

产品特性

计算与存储分离

TDMQ 的上层服务和存储模块分离,Broker 架构采用云原生无状态设计,天然支持按量使用和按需扩展,体验更加 Serverless 化。 

高性能低延迟

 TDMQ 能够高效支持百万级消息生产消费以及海量消息堆积,单集群 QPS 超过10万,同时在时耗方面有保护机制来保证低延迟,帮助您轻松满足业务性能需求。 

多协议接入

 TDMQ 不仅支持原生 Pulsar 协议,还支持以插件化的方式兼容其他主流消息队列协议,用户几乎不需要代码改造便可完成到 TDMQ 的迁移。 

应用场景

异步解耦

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

削峰填谷

企业不定时举办的一些营销活动,新品发布上线,节日抢红包等等,往往都会带来临时性的流量洪峰,这对后端的各个应用系统考验是十分巨大的,如果直接采用扩容方式应对又会带来一定的资源浪费。TDMQ 此时便可以承担一个缓冲器的角色,将上游突增的请求集中收集,下游可以根据自己的实际处理能力来消费请求消息。

顺序收发

顺序消息的应用出现在在业务场景中。例如王者荣耀的皮肤道具购买与发放,过程中的订单创建、支付、退款等流程都是严格按照顺序执行的,与先进先出(First In First Out,FIFO)原理类似,TDMQ 提供一种专门应对这种情形的顺序消息功能,即保证消息 FIFO。

分布式事务一致性

计费系统的交易链路通常比较长,出错或者超时的概率比较高,这时会借助 TDMQ 的自动重推和海量堆积能力来实现事物补偿,同时支付 Tips 通知和交易流水推送可以通过 TDMQ 来实现最终一致性。

数据同步

如果有多个数据中心存在,需要在多个数据中心之间消费,那么 TDMQ 可以非常方便实现数据中心之间的同步。