腾讯金融级核心交易解决方案TDMesh深度实践

905 阅读9分钟

近日,在ArchSummit全球架构师峰会上,腾讯计费团队分享了在金融级核心交易解决方案TDMesh上的深度实践。这也是腾讯计费继今年5 月在腾讯全球数字生态大会首次线下展示后的又一大动作。

据了解,腾讯计费是孵化于支撑腾讯内部业务千亿级营收的互联网交易平台,它汇集了国内外主流支付渠道,提供账户管理、精准营销、安全风控、稽核分账、计费分析等多维度服务。平台承载腾讯公司收入大盘, 百亿级账户、百亿级日交易、覆盖180+个国家(地区)、服务数万业务和上百万商户,是一个全方位的一站式计费平台。

TDMesh 由支撑腾讯内部15年的计费技术体系孵化而来,包含全域一致性、海量请求支撑、7*24不间断服务管理、秒级的智能监控和弹性伸缩等多个功能板块,共同组成一套全面的金融级处理方案。

腾讯计费平台部总经理李纲表示:“基于计费的高一致、高性能、高可用、高可靠技术要求等挑战,腾讯计费平台部基于服务内部业务的多年经验,将核心技术板块全面优化整合,推出一套金融级的核心交易解决方案TDMesh。在不断自我进化持续打磨的同时,也希望通过参与相关技术讨论,与合作伙伴共同构建金融级高一致技术范例,推动行业发展。”

应对 ”四高“ 挑战,腾讯计费的技术构建思路

腾讯计费系统的基础建设起步于 2004 年,在此后 15 年的发展过程中,随着接入业务增多、移动支付兴起、部署区域全球化,腾讯在计费方面面临了一系列的挑战,举例来看:

· 金融级高一致。腾讯计费承载游戏账户、积分权益、泛娱乐订阅及广告客户等百亿级账户类存储,交易高峰期数十万级每秒,日交易量超百亿,平均每天的版本或流程变更超百项。在巨量的交易规模下,如何确保千亿年营收的零差错,实现金融级一致性,是计费的最核心关键问题。

· 高性能。计费流程,如游戏点券消费、按次的广告点击扣费等,访问高频且常伴有热点,加上如活动放量时流量的数十倍突发,叠加瞬间峰值超百万tps,这需要计费具备很高的单机性能和整体余度;

· 高可用。计费服务目前全球已部署100+ 集群,作为一个大跨度的支付系统,必然要面对各种网络异常,不同国家支付渠道的差异,配置和数据处理的困难等问题,这些都要求计费服务具备很强的业务容灾和数据容灾能力,有充分的弹性和容错设计,不可用时间控制在全年分钟级别;

· 高可靠。主要针对存储层,只要响应成功就代表数据一定落盘,对于如操作系统崩溃等意外宕机能确保数据不丢;同时, 对分布式任何节点的故障,引发的本机数据损坏和脑裂等问题,也都要求数据严格不错不丢。

为应对上述 ”四高“ 挑战,腾讯计费在技术方面采用微服务和中台化两大设计思路:

微服务设计,通过合理的功能拆分,及精细服务治理如服务的注册、发现、熔断、自愈、负载均衡、链路跟踪等实现功能的快速扩展和流量的高效调度,以此达成整体系统的高伸缩和高可用。

中台化设计,通过合理的功能组织,明确模块边界,内部类同逻辑的组件化抽象,及统一的服务鉴权、服务间配置、服务内事务、和服务的统一存储等规范,来实现整体服务的高可复用,提升研发效能。

基于上述思路,腾讯计费构建了金融级的计费解决方案TDMesh,它覆盖从接入到存储,各个环节有四高要求的组件,加上在运营上的服务调度、监控、变更灰度和数据分析等管控模块。这些组件模块相互配合,有力支撑起腾讯计费和外部伙伴的业务开展。

技术产品体系完善,TDMesh 已受到行业认可

从技术架构层面来看,TDMesh 已经形成完善而丰富的技术产品体系。

腾讯计费首席架构师、计费专家陈宁国在大会现场全面解析了TDMesh的整体架构。他介绍道,腾讯金融级核心交易解决方案TDMesh,包含1)TDEA统一的入口调度、协议管理、和服务鉴权; 2)TDCC 配置引擎,多环节复杂关联配置的高一致管理; 3) TDXA交易引擎,应用层复杂长链路交易逻辑的高一致管理; 4) TDF高性能基础服务框架; 5)TDMQ高一致高性能的分布式消息队列; 6)TD-Hold高一致高性能分布式缓存; 7) TDSQL金融级高一致高可靠数据库; 8) TDLedger去中心化的高一致记账机制,区块链; 9)运营系统,实现服务的统一调度和弹性管理。

对于开发者,使用 TDMesh 后,APP 只要对接 TDXA,就可以一步接入 TDMesh 的所有组件,实现从配置、接入、应用层事务、到订单存储、消息通信、对账等整个交易业务链的一揽子标准化处理,来实现自身服务的高一致等四高要求。

TDMesh在计费的典型应用举例:一次典型折扣优惠活动,通过7个关键环节的组件技术能力合作, 实现大请求量活动的顺利实施。

值得一提的是,整套 TDMesh 分布式解决方案,不仅适用于计费,对于金融相关行业都有较高的参考和应用价值,并且已经受到金融行业的认可。

至目前,金融级解决方案 TDMesh 的构成部分之一、腾讯计费自研的分布式数据库 TDSQL 已经支持了国内首家传统银行——江苏张家港农商银行的核心业务系统转向新一代分布式核心业务系统、实现自主可控。同时,这一分布式数据库产品也已开放给合作伙伴;目前,TDSQL 数据库已为超过 500 家公有云客户,中国银行等近 30 家专有云客户提供数据库服务。

本次发布,重点介绍的TDMesh组件有解决应用层事务的TDXA和 负责系统解耦、事务异常处理的TDMQ。 TDXA(Tencent Distributed eXtended Architecture),是一个旨在长链路一致性,支持多种事务模式混合, 图形化开发的分布式事务调度引擎。其支持的事务模式,包括如TCC/Saga/AT等; 其编排能力,主要是通过流程状态的跳转追踪来自动确认或回滚,和异常时的零人工介入;其开发模式,主要是图形化的一站式的集成研发平台;从而最终实现 将复杂的分布式一致性问题交给平台,使业务开发更加聚焦,化繁为简,提升系统的容错能力和稳定性。

TDXA 主要适用于 OLTP(联机事务处理过程,多用于一线业务操作)长事务的处理场景。计费服务基于微服务的架构,通常对于一次完整的交易流程进行多达几十次的网络调用,包括 RPC 接口、原生的 DB 接口、KV 接口等。基于高一致要求,如果由开发者自己来处理各种异常来保证高一致,代码的复杂度和不可控性显而易见。因此 TDXA 的核心使用价值,在于通过统一的组件,将一致性问题处理标准化,保证服务高一致和高质量前提下,有效减少开发者处理错误或异常的工作量,满足业务发展时交易场景多元化及交易量快速增长对计费系统高一致,高性能,高可靠的要求。

TDXA的正常运行特别是对超时等的处理,还有不同系统间的异步解耦,数据库的数据同步,依赖于另一个核心的组件TDMQ(Tencent Distributed Message Queue). TDMQ 是云原生架构设计的消息队列,具备跨城高一致、高可靠、高性能。已广泛应用在腾讯计费场景,支持日均100亿+的请求传递,包括支付通知、实时对账、实时监控、大数据实时分析等方面。

TDMQ云原生的一个典型特点是,支持存储计算分离,上层计算层由独立的broker组成,支持高性能的网络访问和topic管理,下层存储层实现日志流的高一致复制。这样就能按业务性能或容量需求分别扩展,来实现整体的成本最优。TDMQ典型的功能特性还有如延迟消息、事务消息、消息追踪、完整的多租户支持,任意的消费者数量等,这对于高并发消费等场景友好。另外,在运营上,还支持快速的数据平滑迁移、逻辑隔离等特性,以避免多topic间生产消费的互相影响。

最后,作为致力于金融级核心交易一揽子解决方案的技术产品,在不断深度实践和总结的同时,也希望能通过更丰富的场景和客户,在易用性、可管理性、性能成本比、云原生适配等方面持续的打磨和提升,而这些理念也正在腾讯内部、投后公司、云客户、智慧行业等领域持续的落地和展开,期待通过技术和产品的持续锻造,TDMesh能为行业发展不断增添新的思路和实践案例。