近日,腾讯云分布式数据库TDSQL宣布对外商用,这是腾讯第一款真正意义上对外商用的分布式数据库。它定位于在线联机交易处理场景下、高安全性的企业级云数据库,十余年来一直应用于腾讯充值、米大师、理财通等腾讯内部计费业务。
 
TDSQL兼容MySQL语法,拥有诸如强一致性、高可用、线程池、审计、异地容灾等高级功能,同时具有云数据库的易扩展性、简单性和性价比。并在多个项目中通过银监、保监的可靠性、信息安全等检查,目前应用于安心保险、微众银行、汇通天下等企业。在这里分享腾讯官方唯一数字业务支付平台——米大师(以下简称Midas)的实践案例。

Midas为腾讯移动APP(iOS、Android、Win phone等)、PC客户端、Web等不同场景提供一站式计费解决方案,目前已经覆盖了国内外30多个计费渠道,包括Q币/Q点、微信支付、手Q支付、财付通、银行卡、手机充值卡、QQ卡、IAP、Google Play、MOL等,承接腾讯所有数字业务计费需求。提供安全、流畅、便捷的付费体验,已服务付费用户过亿,日收入流水过亿。
 

云上故事

Midas后台数据库存储的特点:
 
需保障7*24小时不间断的对外提供服务,对数据库的可用性要求比较高。
 
数据内容主要为用户的资金账户、交易流水、交易订单等金融类数据,对数据库的一致性和安全性有很高要求。
 
数据总量超过300T(2015年数据),且在不断增长;高峰时段数据访问TPS超过50万。

Midas后台MySQL之痛点:
 
Midas为腾讯内外几万款产品提供支付营销服务,业务变更非常频繁。单机版MySQL的变更流程相对是比较重的,虽然有不少工具可以提高效率,但没有形成完整的体系,很多仍然需要DBA手工操作衔接,工作效率低并且很容易出错。
 
数据量极大,超过300T(2015年数据),MySQL单机根本无法支撑这么大的数据量和性能要求,之前试用过多种中间件集成方案,但可用性无法保障,经常出现某个分片无故故障。
 
数据库故障检测与容灾切换方案复杂,尤其在分布式情况下,数据的分布逻辑与业务逻辑深度耦合,一旦现网出现问题需要进行切换,牵扯面非常大,前端的数据访问逻辑、后端的数据消费逻辑等都得一起相应变更,稍有遗漏就可能酿成大事故。同时,灾难过后的恢复也相当繁琐,为保障数据的一致性需要大量的手工确认工作。可以说,DBA每天的工作繁琐且如履薄冰。
 
缺乏快速、高效的容量伸缩方案。Midas面对的互联网产品,流量极不均衡,如做营销活动时的瞬间流量可能是平时的几十倍。原来的方案,变更流程长,针对大的流量需求甚至要提前1到2个月准备、手工操作多,且容易出错。即便如此,也只能应付计划内的流量冲击,对计划外的流量冲击基本上只能限流,伤害用户体验且措施业务时机。此外,很容易造成闲时资源浪费,忙时资源不足。
 
TDSQL的解决之道
 
支持水平拆分(自动分库分表)
 
TDSQL支持自动的分库分表,结合数据的统一调度机制,实现按需的容量伸缩。因为TDSQL通过网关屏蔽了内部的分库分表细节,对于开发人员来说,不再需要关心如何切分数据、如何路由请求等待,只需直接面向逻辑库表进行编程、专注业务逻辑的实现即可,大大降低了程序的复杂度。
 
自动容灾切换
 
Midas提供在线的移动支付服务,对后台存储数据库的可用性要求非常高。之前,容灾切换需要业务检测和配合,与业务程序深度耦合,而且切换过程复杂,甚至需要人工介入。业务恢复后还需要对切换过程中可能出现的错误数据进行手工修复,运维起来非常痛苦。
 
TDSQL数据节点和网关实现跨三个IDC部署,可自动检测实例的运行状态。当发现主节点不可用时,会自动触发主备容灾切换流程,保障在主机故障、网络故障、IDC故障等灾难情况下数据库的高可用性。这个容灾切换过程对业务完全透明,且无需人工干预,在确保用户体验的同时,也极大的简化了运维工作。
 
数据高一致性保障
 
Midas后台的数据是Q币Q点等资产类数据,对交易数据的一致性要求不亚于银行,对数据的丢失或错乱零容忍。TDSQL在MySQL原有异步复制和半同步复制的基础上创新的使用了多线程强同步复制机制,确保每一笔交易在返回用户应答前,在集群中至少有两个拷贝,然后再通过一系列切换机制保障在节点故障发生切换时,数据不会丢失或错乱。
 
集群化管理

Midas支付服务面向腾讯所有移动支付业务,后台数据量超过300T,MySQL实例数超过500个。并且,移动支付业务的请求量会因上线新功能或者做营销活动等原因,峰值请求量激增至平时的几倍甚至几十倍。之前,需要提前知晓业务测的动向,由DBA提前手工扩容,扩容过程繁杂,且中间过程手工操作多,极容易出错。
 
TDSQL在集群层面实现了自动部署、自动容量伸缩、自动备份恢复、数据定点回档以及多维监控等功能。当扩容需求时,DBA只需要在前台点击按钮发起扩容流程,即可自动完成扩容工作;当业务请求高峰过去后,可进行相应的缩容操作,把资源释放出来,减少资源的浪费。TDSQL的集群化运营体系,极大提升了DBA的工作效率,同时大大降低了手工操作可能带来的失误。
 
客户反馈:TDSQL提供了一个高性能、高可用的数据库解决方案,大大方便了系统的构建和运维工作。
 
作者:郝志刚
 
腾讯高级工程师,负责腾讯公司计费业务的数据库开发和维护工作,5年TDSQL数据库运营及相关平台建设工作,有丰富的数据库运营经验,擅长数据库架构、性能调优。

分布式数据库案例分享:腾讯移动支付平台米大师相关推荐

  1. 腾讯云分布式数据库技术分享

    目前国内分布式数据库背景: 1.数据爆发增长:大数据时代,万物互联,业务数据量爆发增长,传统服务器读.写.存储,等遇到多方面压力过大. 2. 扩展时效性:传统数据库进行高性能硬件的升级扩展时,进行数据 ...

  2. 案例分享:Qt数据分析处理平台(兼容各国产麒麟系统)(文件域字符串解析,上万文件批量导入,折线图、散点图,正态分布图分析处理导出等)

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/114710650 长期持续带来更多项目与技术分 ...

  3. TOP100summit 2017:【案例分享】魅族持续交付平台建设实践

    本篇文章内容来自第10期魅族开放日魅族运维架构师林钟洪的现场分享. 编辑:Cynthia 一.自动化建设历程 1.1 魅族互联网发展的时间线 2003-2008年被称之为"互联网1.0时代& ...

  4. 案例分享 | 数字化综合人才管理平台

    01  中国职业教育发展快速,职业教育机构迎来黄金时代 职业教育是国民教育体系和人力资源开发的重要组成部分.进入新时代,中国政府高度重视职业教育,把职业教育摆在经济社会发展和教育改革创新更加突出的位置 ...

  5. 创新案例分享 | 建立医院绩效考核平台,促进医院提质增效

    通过该项目的实施,逐步完善公立医院绩效考核工作相关要求,满足<国务院办公厅关于加强三级公立医院绩效考核工作的意见>要求的相关绩效考核指标的提取,建立起与公立医院绩效考核和 DRG 医保支付 ...

  6. 创新案例分享 | 建设一体化智能化公共数据平台,赋能数字化改革

    在数字政府2.0建设的大背景下,数据成为推动政府转型的关键要素,国家及各地方出台一系列数据共享管理办法,推动数据归集的落地实施. 2021年2月,省委召开十四届八次全会决策部署,就加快推进数字化改革制 ...

  7. 创新案例分享 | 建设人事工资智能平台,共享数字化改革成果

    通过高校人事工资智能化集成平台建设,进一步满足不断发展的全校工资管理服务的需求,简化优化业务协同.推动数据共享流转.建立数据规范.改进服务水平.行政效率.提升监管和治理能力,实现对全校教职工和各级管理 ...

  8. 【新书速递】从原理、架构、案例三个维度深度剖析分布式数据库

    分布式数据库是分布式计算与数据库结合的产物.分布式数据库的概念早就存在,但是直到最近才真正引起产业界的高度重视.这得益于互联网和云计算技术的高速发展与广泛应用. 以"国家政务服务平台&quo ...

  9. 嘉年华回顾丨 尚博带你了解腾讯 TXSQL如何 赋能腾讯云分布式数据库 CynosDB

    2020年数据技术嘉年华还有不到一个月,相信大家期待值也越来越高.数据技术嘉年华组委会在此精心为大家准备了"嘉年华回顾",挑选往届大会中热门的演讲.小编带大家回顾往届的高光时刻!场 ...

最新文章

  1. 并发编程(九)—— Java 并发队列 BlockingQueue 实现之 LinkedBlockingQueue 源码分析...
  2. logback高级特性使用-异步记录日志
  3. 截取url的host_java正则表达式获取url的host示例
  4. java 条件 等待_java – 如何唤醒等待相同条件的所有线程?
  5. IDEA如何删除无用war包
  6. CSSS - CSS幻灯片
  7. android组件化数据生命周期,Android组件化开发实践(七):开发常见问题及解决方案...
  8. 使用XMLHttpRequest
  9. 2.4 设置工作表的背景图片 [原创Excel教程]
  10. 安卓GB28181设备语音广播和语音对讲(Android GB28181 语音广播和语音对讲)实现
  11. 般若波罗蜜多心经白话分段解释
  12. 软件测试工程师面试如何描述自动化测试是怎么实现的?
  13. pdf to word android,PDF to Word Converter
  14. timer控件自动停止问题
  15. 【ASM】Oracleasm命令
  16. 岁月如水-指间流逝-难觅难留
  17. marquee相关属性
  18. 趁我酒醉后专车司机想要非礼我
  19. 我的Java乱卷之路
  20. 怎样用计算机打出Abc,电脑智能ABC输入法怎么设置输入功能?

热门文章

  1. 谷歌adwords教程_如何将Google Analytics(分析)与AdWords关联
  2. Android:实际运用Zxing集成二维码扫描 及 自定义扫码界面(demo源码)
  3. day21-pdf作业
  4. Vulkan学习(六): 小结--Hello Triangle
  5. Java复习第九章 多线程
  6. Struts2遇到的一个bug(对于与上下文路径[/WebStruts2.3]关联的名称空间[/]和动作名称[hello],没有映射的Action。)
  7. 百度快照被劫持跳转到博彩网站 终极解决办法
  8. [学习笔记]数据与科学训练营之三:统计学
  9. STM32 链接文件使用
  10. 视频后期合成软件:nuke12 mac版 v12.2v4最新版(支持big sur)