作者简介:abllen,2008年加入腾讯,一直专注于腾讯计费平台建设,主导参与了腾讯充值中心、计费开放平台、统一计费米大师等项目,见证了米大师从0到1,业务营收从PC到移动多终端再到全球化的跨越过程。20+篇支付专利主撰写人。目前专注于跟团队一起为腾讯业务提供稳定高效安全的全球化个人和企业市场计费服务。
经过海外3年建设,腾讯Midas(米大师)计费逐步构建起了一个分布式的全球计费系统,来助力公司及业内产品计费扬帆出海,走向深蓝。在刚过去的北京全球架构师峰会上,腾讯计费平台部架构师陈宁国分享了Midas在海外计费系统架构演进上的一系列思路与做法。
Midas计费,目前已经接入2000+ APP,60多万家商户,覆盖国内10+和海外40+渠道,托管账户总量200多亿,每日流水稽核500多亿条,基本上涵盖了所有常见的计费模式,如虚拟代币购买、道具、订阅、实物等,是一个全方位的一站式计费平台。
在讨论海外的计费架构演进前,先看下国内在线交易系统的简要架构。
该架构下,计费系统已具有如下能力:
1.整体多地部署,具备跨城容灾能力
2.就近接入,通过GLSB等机制,尽量将用户的请求从邻近公网入口导入计费系统,这可以明显降低用户时耗,提升体验;
3.域内系统自治,存储底层来解决必要的数据跨区域访问问题,如某些风控策略,数据必须全局共享, 底层的透明网关会根据请求信息来就决定是本地访问还是远程访问。在这个机制下,故障时一地区可在短时间内甚至无缝来承载另一地区的全部交易请求,以达成系统的高可用。
计费走向海外国际化,所要面对的首要核心问题就是地域跨度,从下图即2017-12-7日的Midas全球各区域实时支付时耗图就可以看到,内部网络单路径的时耗,经常性约200ms左右,作为对比,深圳到上海的时耗一般都在50ms以内,而实际的请求往往要经历多次路径接力,特别是从用户终端到就近接入点,耗时更久,这对系统流程控制、监控、发布等都有挑战。其次,随着部署地域的增加,不同地区的网络结构,机器软硬件环境,及机器数都会有所限制,譬如在国内, 一整套计费系统一般机器数都在百台以上,而在海外某些地区,出于业务试水等情况,机器可能刚开始只有3~5台, 那么就需要有办法将数百台机器的计费系统缩减到只需3台即可正常运行。还有就是底层存储,需要能实现跨区域数据主动动态迁移。
架构演进之一,整体网络优化。
Midas海外计费,目前主要部署在香港(HK)和加拿大(CA)两大公司自有IDC,及南北美、欧洲、澳洲的AWS,还有部分是合作伙伴机房。在这些区域间,涉及到多级骨干网,二级网络和本地运营商网络,物理路径长,时耗常不稳定,我们通过利用公司全球POP加速点的部署,结合分析海外网络结构特点,建设了8个自营的交易中心入口,并利用智能DNS远程代理方式,来优化如AWS的接入点,最终有效避开了局部经常性的网络异常,加之终端的针对性优化,如预加载,请求合并等,成功将全球17个地区单次通信平均时耗明显降低。
下图是MC的优化前后支付时耗图,可以看到优化后平均单次通信时耗都降到了800ms内。
架构演进之二, 配置、发布及数据处理
针对海外的机房差异性大的特点,我们设计了一套配置的统一推送同步系统,譬如针对合作商网络,布置中间层代理,对于不同地域,将配置打标记做差异化减少网络数据流量,并且实现应用及活动规则等细粒度配置同步,同时,还能实时获得各配置下发的进度及生效情况,最终实现的配置的跨国秒级下发。
针对海外机房众多的问题,还研发了全球发布平台,能根据各地域机房情况采取相应的最优化发布策略,最终实现即时的按需发布。
随着发布地点的增加, 监控和交易数据的实时处理愈发重要,我们构建了一个集中式的数据收集及处理平台,最终实现秒级的全球交易异常告警及数据稽核。
架构演进之三,跟随部署
计费针对海外的机房环境差异及机器数限制,采用了两项策略。
一项解决环境依赖,譬如,对能提供docker类虚拟化容器环境的,构建计费系统的镜像来部署;对不能提供虚拟化容器的,在自有的开发框架层上,直接打包开发环境的runtime,不再依赖部署机器的runtime,同时,还提供这些runtime的hook,使得框架中的app也不再依赖部署机器的runtime。最后,对于app使用的特定库,要求尽量采用静态编译的办法来解依赖。
另一项, 对于机器数量有限制的,采取灵活适配的办法,通过将大的系统模块完全微服务化来达成。微服务化后,每个系统都有一个或多个app组成, 而这些app均可以在统一的框架下运行,这样最少3台机器(考虑存储的需要)就可以部署所需要的全部功能, 并且,微服务化后还使得计费部署能根据场景灵活组合做最佳化适配。细节如下图
架构演进之四,框架与交易引擎
前面讲到要完全微服务化,随着逻辑被分拆,app增多,会面临新的服务治理的问题,一方面是服务间的访问调度,一个是服务内逻辑的可控性。
对于服务调度,我们开发了TDF框架,来实现服务间的动态路由、负载均衡、灰度、引流、流控等管理。
对于服务内逻辑,特别是计费强调高一致事务类的,我们开发了交易引擎 TDXA,通过范式定义来简化XA事务开发,如包括 TCC\ TRY_BEST\DB及几者的混合处理等,实现事务及异常处理的完备;同时引入图形化的流程管理,使得逻辑流程可以通过图检查来确保完备,还可以展示某个请求的处理过程,这使得流程更加清晰化,增强逻辑可维护性。
架构演进之五,跨地域动态迁移
在跨地域情况下,严重的时耗问题使得远程访问代价过大,这时就需要有办法能将远程访问尽量变本地化,下图是我们考虑的策略,根据用户的就近位置来决定数据归属。如对同一个账户表,如果用户位置变动是短暂行为,则仍旧是远程访问原位置数据,如果位置明确变动,则会自动做数据的平滑迁移,即短期的数次远程访问后,会将数据搬到用户新的所在位置,变成快速本地访问,这可以明显降低交易时耗,提升用户付费体验。
经多以上的这些架构调整,最终我们构建了一套全球化的计费系统, 实现如下预定目标:
1.灵活按需部署,按需快速发布、灰度、扩容,并实现高可用
2.多主中心 + 各小中心 + 集中式运营,具体为:
A)自营全球7大机房,外发部署就近8国,覆盖全球主要区域
B)4大POP加速点, 3大远程代理, 单次通信时耗降低到1s内;
C)海外已接入40个渠道,基本涵盖各区域主流渠道
D)业务接入周期从1月降低到3天,实现秒级的发布与异常告警;
E)数据跨地域动态迁移,基本做到全本地化访问,进一步降低付费时耗。
3.我们认为这是目前阶段能达到的较合理的计费体系,线上运行也表明符合预期。
结束语
经过持续建设优化,Midas米大师已成为一套完备的全球性、全场景、一站式整体解决方案。支付的持续发展有赖于付费场景的扩展,Midas欢迎各类业务的洽谈接入与合作。米大师自身也将继续追求技术的突破,不断迭代演化,为各业务营收带来更大的价值。
专题介绍
ArchSummit全球架构师峰会是InfoQ中国团队推出的面向高端技术管理者、架构师的技术大会,参会者数量1000+。其中,出品人及演讲嘉宾中高级技术专家比例占79%,90%拥有10年以上开发经验。本次“TEGer在全球架构师峰会”专题将带来TEG人在会上的系列主题分享。
有奖互动:你认为产品出海,除了计费还会遇到什么大的挑战? 12月31日前 , 在留言区分享你的看法,点赞前三名将获得,腾讯CDC“怪企鹅按摩捶”一个
本文转自“腾讯技术工程官方号”,扫描以下二维码可以关注

腾讯海外计费系统架构演进相关推荐

  1. 今晚7点,腾讯专家详解腾讯广告召回系统的演进

    腾讯广告算法大赛致力于通过赛事促进产研融合,助力选手探索算法技术的应用前景.为了让选手进一步打开视野,站在行业技术最前沿,腾讯广告算法大赛官方正式开启"技"高一筹专题直播,持续为选 ...

  2. 如何解决架构与业务发展冲突?讯飞输入法Android架构演进

    内容来源:2017 年 12 月 3 日,科大讯飞应用研发经理程坤在"IAS2017互联网架构峰会"进行<讯飞输入法Android架构演进与实践>演讲分享.IT 大咖说 ...

  3. 亿级流量系统架构演进之路

    海量用户同时进行高频访问对任何平台都是难题,也是行业乐此不疲的研究方向.但值得庆幸的是,虽然业务场景不同,设计和优化的思想却是万变不离宗.本文将结合业务与高并发系统设计的核心技术点,对系统架构调优方案 ...

  4. 美团配送系统架构演进实践

    写在前面 美团配送自成立以来,业务经历了多次跨越式的发展.业务的飞速增长,对系统的整体架构和基础设施提出了越来越高的要求,同时也不断驱动着技术团队深刻理解业务.准确定位领域模型.高效支撑系统扩展.如何 ...

  5. SpringCloud(一)系统架构演进

    概述:随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进.如下为整理的一个系统架构演进思维导图.主要 ...

  6. 腾讯专家献上技术干货,带你一览腾讯广告召回系统的演进

    为拓宽选手们的技术视野,腾讯广告算法大赛官方邀请 NVIDIA 及腾讯的技术大咖,倾力打造了"技"高一筹系列专题直播.在6月24日的直播中,腾讯广告高级研发工程师陈帆,为大家详解了 ...

  7. 京东到家搜索系统架构演进

    目录 一. 前言 二. 搜索系统架构演进 2.1 到家搜索系统1.0 基于LBS搜索召回场景 建立"可用"的搜索系统 小结 2.2 到家搜索系统2.0 重构召回 排序模型小试牛刀 ...

  8. 去哪儿网支付系统架构演进

    作者简介:吕博,去哪儿网金融事业部研发工程师,毕业于吉林大学,2012年加入去哪儿网. 致力于支付平台研发和支付环节的基础服务建设. 正文 去哪儿支付系统自 2011 年搭建以来,在五年的时间里逐渐从 ...

  9. 去哪儿网支付系统架构演进(上)

    去哪儿支付系统自2011年搭建以来,在五年的时间里逐渐从一个高耦合的单一系统发展为众多子系统组成的高并发.高可用.支持多种交易支付业务的分布式系统.业务从最初的非代收到现在多种非代收.代收场景的支持, ...

最新文章

  1. 魅族怎么查看内存linux,这就是魅族超级旗舰:看燃
  2. IBM-X3650 6核处理器安装sql server 2005报错解决方法
  3. Domain Socket本地进程间通信
  4. 英语笔记:词组句子:1112
  5. (python3.8)pygraphviz的下载安装配置(在python下)最新
  6. 浅谈.net remoting 与webservice
  7. 日本第四次产业革命瞄准物联网
  8. 李宏毅-《深度学习人类语言处理》国语版(2020)视频课程及ppt分享
  9. 【原】数据分析/数据挖掘/机器学习---- 必读书目
  10. 免费——离散数学(左孝凌)课后习题答案
  11. C语言程序设计的七个准备步骤
  12. fiddler打开之后google浏览器无法上网的解决办法
  13. 解决Unity TextMeshPro 不能显示中文问题
  14. mysql rpm mar_Centos7.3离线(rpm方式)安装mysql服务
  15. 【信号与系统】Multisim 仿真抽样定理与信号恢复
  16. 听歌识曲C++程序说明
  17. 使用U盘安装win7系统遇到“缺少所需的 CD/DVD 驱动器设备驱动程序”解决办法
  18. lightdm .service: Start request repeated too quickly. grub正常,不显示登录和桌面 Endeavour
  19. Docker系列之常用命令操作手册
  20. python从业人员工资_会Python的人,毕业后工资到底有多高?

热门文章

  1. 内存回收导致关键业务抖动案例分析-论云原生OS内存QoS保障
  2. mpegtsenc.c的源码
  3. 【技术干货】跨境茶话会第4期丨响应式编程的应用
  4. 求次方的c语言程序,C语言编程求13的13次方的最后三位数
  5. ei会议论文含金量高吗?
  6. Spring Boot项目自定义启动Banner
  7. 金纳米颗粒上装载DNA四面体|金核(75-100nm左右)sio2壳层(3-5nm)产品描述/信息/详情
  8. 计算机论文课题来源,浅析论文题目的来源和意义
  9. 电脑计算机硬盘怎么加,电脑怎么增加硬盘内存
  10. 计算机如何新增硬盘,电脑新增加一块硬盘安装并使用的教程