mq 查看队列深度_千亿级金融场景下,基于Pulsar的云原生消息队列有怎样的表现?...

0974f4b15557f3260191821c924f7072.png

导语 | 云原生场景,多语言、多种协议兼容,任意多的消息 Topic、任意多的消费者,性能的按需快速扩展成为消息队列基本的要求。本文是对腾讯TEG技术委员会专家工程师刘德志老师在云+社区沙龙 online 的分享整理,介绍基于 Apache Pulsar 的新一代存储计算分离设计的消息队列 TDMQ,希望与大家一同交流。

点击视频查看完整直播回放

一、金融级别云原生消息队列功能需求

1. 腾讯计费背景介绍

腾讯计费是孵化于支撑腾讯内部业务千亿级营收的互联网计费平台,其核心是帮助用户与产品,安全、便捷的完成支付和收款,在交易过程中帮助产品盈收实现最大化。 如果把腾讯比喻为一个饭店,腾讯计费就相当于门口柜台的收费平台,你在饭店的消费,可以用微信支付、银行卡、苹果支付、QQ钱包、充值卡抵扣券或其他方式支付。 这里包括了 ToC 场景,比如用户往自己的 QB 账户充值,或者在游戏终端购买道具、游戏币,比如王者荣耀购买英雄或者皮肤等。也包括 ToB 场景,比如广告主、网红主播、腾讯云客户的扣款收费,都是通过腾讯计费这套平台提供的服务。 平台承载了腾讯公司每天数亿收入的大盘,为 180+ 个国家(地区)、万亿业务代码、100W+ 计算商户提供服务,托管账户总量 300 多亿,是一个全方位一站式计费平台。 腾讯计费平台有四个版本,分别是基础版、企业版、海外版、行业版,为众多广告客户提供服务,支持单笔上亿的交易。 mq 查看队列深度_千亿级金融场景下,基于Pulsar的云原生消息队列有怎样的表现?..._第1张图片

2. 腾讯计费消息队列场景

MQ 的使用场景基本上是比较明确的,一般包含异步处理、应用解耦、流量削锋、消息通讯四个场景。围绕腾讯计费场景,MQ 在腾讯计费中的应用可以分为在线服务和离线准实时服务。
(1)在线服务
腾讯计费场景和电商购物具有类似的流程,有下单、价格计算、支付、发货等这些过程。区别在于我们的用户是在客户端一次点击,由后台把这些环节自动完成,特别是对于一些免密支付的场景的支持, 所以腾讯计费需要解决的核心问题是处理如此长链路请求,怎么保证最终钱货一致? 腾讯计费自研的分布式交易引擎可以解决交易过程中的应用层逻辑一致性问题,其中对于失败或者超时的情况下,借助 MQ 作为补偿处理。 比如 TCC 模式下的 commit 和 rolback 阶段出失败,以及 saga 模式的 do 和 undo 重试情况, 利用 MQ 的自动重试和海量堆积能力。另外还有消息通知场景,比如充值Q币成功后,会给用户发送购买成功 tips 。以及交易流水的内部推送,腾讯计费拥有最全最官方的计费流水,业务需要我们提供实时流水,MQ 是首选方案。
(2)离线准实时服务
系统交易是否高一致,该如何证明呢,这是一个很严肃的问题。必须通过第三方对账系统来验证,既期交易流水与资金流水的条目和金额是否完全一致,一般传统的是两方对账,既期交易流水和账单流水对比。 腾讯计费的对账有所不同,存在多方对账,混合支付(抵扣券加上其它支付)和打包发货(比如购买腾讯视频会员和QQ会员)。那么对账越实时就能越早发现问题,借助 MQ 消息通道能力,把计费相关流水实时进行收集,再通过流式计算框架对计费流水实时进行对账,同时还能做到实时监控,与交易引擎相辅相成,共同保证整个交易的时效性和一致性。
(3)其它场景
数据同步通道,比如 DB 多源同步、流水日志汇总等。对于千亿级规模的计费平台,消息队列需要具备哪些能力呢? mq 查看队列深度_千亿级金融场景下,基于Pulsar的云原生消息队列有怎样的表现?..._第2张图片 综上来看,首先需要具备金融级可靠性和容灾的能力,可以通过多副本、多地域保证数据的可靠性。 第二是强一致性,对于与钱打交道的产品,需要保证数据不能错乱。 第三是无线拓展、按需使用,具备水平拓展和无限堆积的能力。比如春节王者荣耀大促销活动,需要能够快速进行扩容,并且可以从计算和存储分别进行扩容。 第四是轻量 Serverless 化,能够支持租户,以及百万级 Topic,多协议接入来支持 Serverless。 最后是涵盖金融、电商、大数据分析场景,既要满足线上金融业务也能满足一定吞吐的离线场景。 腾讯计费平台基于开源 Pulsar 存储计算分离架构,支持按量使用、无限扩展、兼容主流消息队列、专为云而生的消息队列产品——TDMQ 可以满足上述这些要求。 

二、TDMQ架构说明

1. 功能架构

TDMQ 的整体产品功能,和其他主流的消息队列基本功能并没有太大差别。 mq 查看队列深度_千亿级金融场景下,基于Pulsar的云原生消息队列有怎样的表现?..._第3张图片
(1)具备高一致和高可靠的能力
具备丰富的消息类型来满足业务的复杂场景,比如秒杀活动场景下的定时消息、以及对消息顺序有要求的顺序消息等。同时原生租户设计,可以设置租户的请求频率、消息保留策略等,天然支持云模式。
(2)消费方

你可能感兴趣的:(mq,查看队列深度)