使用TiDB作为ZaloPay商户平台核

SEM百度竞价招聘求职QQ群 http://liangssw.com/bozhu/13286.html

作者介绍:TanToNguyenDuy,VNGDevOps工程师,参与电子钱包ZaloPay基础架构的开发。

首先介绍一下VNG。VNG是越南领先的互联网科技公司,在年,我们被评为越南唯一一家估值10亿美元的创业公司。VNG推出了许多重要产品,比如Zalo、ZaloPay、Zing等,吸引了数亿用户。Zalo是VNG集团的旗舰产品,发布于年,是越南使用最广泛的通讯APP,目前活跃用户数达到1亿。而本文主角ZaloPay是一款移动支付应用,它建立在Zalo的基础上,继承Zalo生态中的诸多便利,满足用户的日常生活和商业需求。ZaloPay发布于年,当时Zalo已经拥有大量用户,形成了一个生态系统。也就是说,ZaloPay的系统必须能够处理非常大的用户量,并且有连续不断的扩展性。

ZaloPay系统的商户解决方案

年初,ZaloPay上线了一个新功能,大约1亿的Zalo用户可以使用ZaloPay来转账、收款等。在越南,ZaloPay是在线上聊天平台提供转账和支付功能的先驱。

为ZaloPay建立一个必须能够满足大量Zalo用户需求的基础架构,并不是一件容易的事,而是一个巨大的挑战。我们不能根据旧的模型来构建服务和设计架构,因为新的系统要有可扩展性、弹性、一直在线的可用性、性能监控功能,还要有严密的安全性。它必须适配尽可能多的云模式。

越南正融入世界上其他地区,迈向互联网时代的高峰,对电子钱包的需求日益增长。我们要推动各种体量的商户使用电子钱包,包括餐饮业、旅游业等的账单支付。这正是“无现金化”电商所普遍追求的目标,我们都知道,实现复杂的交易业务,需要复杂且一致的系统架构。

数据库的挑战

我们认识到业务正在迅速扩张,也清楚地意识到,在不久的将来,数据存储和数据处理会成为一个重大问题,并且这个问题需要尽早处理。随着业务的蓬勃发展,我们的系统基础架构必须能够及时响应业务的增长。

在调研数据库的解决方案时,我们发现了TiDB,一个NewSQL数据库,支持HTAP负载,兼容流行的MySQL协议。在座的各位都非常了解TiDB。我可能不需要多说TiDB的架构,这部分内容留给PingCAP的专业人士,大家当然都知道TiDB能做到的事情。请允许我讲一讲我对HTAP的理解。

HTAP数据库的主要技术挑战在于,如何在同一个数据库里,高效处理许多高频更新的小事务和遍历多行数据的复杂查询,以及如何防止分析查询干扰业务的运行。

HTAP的大多数应用都是通过内存技术(in-memory)实现的,内存技术可以处理大量事务,并提供预测和模拟等功能。HTAP通过复杂的实时海量数据分析,提供即时的商业决策能力,以此改变企业的经营模式。企业决策者可以实时获知各种问题,查看结果,了解趋势,例如风险管理和欺诈检测等领域。

TiDB是一个支持HTAP工作负载的NewSQL数据库,旨在满足数据开发、数据可伸缩性、数据分析等需求。我最喜欢TiDB的一点是,我可以用TiSpark轻松分析数据。随着业务高速发展,我们需要不断扩展数据存储容量,同时进行大量的数据挖掘,以便迅速提供业务建议,TiSpark在这种场景下非常有用。

让我们回到ZaloPay和TiDB。Zalopay致力于移动支付领域,这是一场全新的技术革命。Zalopay的系统需要与许多商业交易紧密结合,并迅速提供业务分析建议。TiDB是支持混合事务处理与分析负载的新型数据库。对,这就是我们所需要的。这正是我们现在和未来都想要的数据库。

TiDB在ZaloPay基础架构中的角色

我想谈谈我对数据的认识和理解。数据无所不有,无处不在。尽管人们将数据视为金矿,但由于技术和人力的限制,很少有人或机构能够挖掘这座金矿。

我从博客中读到,东南亚知名电商巨头Shopee将TiDB用于风控系统中。他们已经从传统的分库分表MySQL迁移到了TiDB。在年初,他们的TiDB集群已处理了大量非交易数据。他们正打算将一些交易类数据从MySQL迁移到TiDB。他们还计划将TiDB用作MySQL同步方案的一部分,让TiDB作为MySQL的从库,把MySQL中的数据实时同步到TiDB。

目前,ZaloPay把TiDB集群运行在本地自有机器上。我刚才提到,ZaloPay在年初推出了一项新功能,允许1亿多活跃用户在Zalo通讯APP中转账、支付、充值、预订酒店/旅行等。Zalo用户可以轻松下单产品,在群聊里分享账单,在家庭群组里发红包,通过商户的Zalo官方账号付款,商户类型覆盖了零售业、餐饮业、服务业、电商等多个行业。商户拥有一个官方页面,就像脸书的粉丝主页一样,用户可以在ZaloAPP中与商户网站上的产品进行交互,然后使用ZaloPay付款。

此外,这个功能还允许用户通过手机应用向其他人赠送礼物,比如代金券、电话卡、红包或任何东西。仅仅是常用支付领域,我们每天就有几十万笔交易。你们可以想象到,我们的TiDB集群工作量之大,集群每天要处理一百万个请求,令人难以置信。

未来我们可能会扩大TiDB在分析服务以及非交易业务中的使用。我们产品里还有许多数据挖掘系统、推荐系统等。我们已经知道TiDB是一个HTAP分布式数据库。我们从一开始就使用TiDB,因此对我们来说,可以很容易地开发这些系统。

TiDB带来的价值

我们的口号是“ZaloPay,两秒付款”。要实现这个口号,我们必须改善许多业务流程和技术流程。为了实现服务,我们使用了匹配TiDB实现的Golang。我们的工程师熟悉Golang,因此,他们可以轻松阅读并理解TiDB源码,从而提升服务性能,优化应用程序与TiDB数据库核心间的软件性能。

有了TiDB,我们可以更容易地实现服务和应用的云模式,也就是可伸缩性、弹性、监控等。

感谢PingCAP提供优秀的开源产品。我的中国朋友告诉我,PingCAP是中国非常知名的开源公司。PingCAP的产品可以帮助许多公司解决系统运行的问题,提供具体的数据库解决方案。在座的各位或许对TiDB和PingCAP很感兴趣,我也一样。开源产品能帮助使用产品的程序员了解该产品的特性、功能以及工作原理。感谢PingCAP的贡献。

我可能不需要讲TiDB如何工作了,因为PingCAP的专业人士们无论是在文档里,还是TiDBDevCon上,都清楚地说明了这个部分。

PingCAP的社区支持

最后谈谈PingCAP对我的支持。我很感谢PingCAP的社区支持。不久前,我在使用和维护TiDB上遇到了一些麻烦,我去了PingCAP社区。在这里,我得到了高级工程师、工程VP和专业社区人员的热情帮助,帮我们排查并解决了问题,并不是每个开源组织或个人都能做到这一点。再次感谢PingCAP成员热心帮助我们学习并使用TiDB。也十分感谢今天来参与DevCon的所有人。

这就是我的全部分享,谢谢大家!

本文整理自TanToNguyenDuy在TiDBDevCon上的演讲,大会相关视频可以


转载请注明:http://www.aierlanlan.com/cyrz/3177.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了