写点什么

使用 TiDB 作为 ZaloPay 商户平台核心数据库

  • 2020-07-07
  • 本文字数:2204 字

    阅读完需:约 7 分钟

使用 TiDB 作为 ZaloPay 商户平台核心数据库

VNG 是越南领先的互联网科技公司,在 2014 年,我们被评为越南唯一一家估值 10 亿美元的创业公司。VNG 推出了许多重要产品,比如 Zalo、ZaloPay、Zing 等,吸引了数亿用户。


Zalo 是 VNG 集团的旗舰产品,发布于 2012 年,是越南使用最广泛的通讯 APP,目前活跃用户数达到 1 亿。而本文主角 ZaloPay 是一款移动支付应用,它建立在 Zalo 的基础上,继承 Zalo 生态中的诸多便利,满足用户的日常生活和商业需求。ZaloPay 发布于 2017 年,当时 Zalo 已经拥有大量用户,形成了一个生态系统。也就是说,ZaloPay 的系统必须能够处理非常大的用户量,并且有连续不断的扩展性。

ZaloPay 系统的商户解决方案

2020 年初, 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。在 2019 年初,他们的 TiDB 集群已处理了大量非交易数据。他们正打算将一些交易类数据从 MySQL 迁移到 TiDB。他们还计划将 TiDB 用作 MySQL 同步方案的一部分,让 TiDB 作为 MySQL 的从库,把 MySQL 中的数据实时同步到 TiDB。


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


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


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

TiDB 带来的价值

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


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


作者介绍:


Tan To Nguyen Duy,VNG DevOps 工程师,参与电子钱包 ZaloPay 基础架构的开发。


2020-07-07 17:292784

评论 1 条评论

发布
用户头像
核心交易已经用上了吗?
2022-02-21 09:04
回复
没有更多了
发现更多内容

WebGpu VS WebGL

3D建模设计

WebGL webgpu

如何把一个接口设计好? | 京东云技术团队

京东科技开发者

接口 接口设计 企业号 8 月 PK 榜

亿级月活的社交APP,陌陌如何做到3分钟定位故障?

童子龙

微服务 性能分析 链路跟踪 可观测平台

NineData X SelectDB 联合发布会,8月30日即将上线!

NineData

实时数仓 数据复制 SelectDB 产品架构 NineData

活动回顾丨阿里云 Serverless 技术实践营 Serverless+AI 专场

阿里巴巴云原生

阿里云 Serverless AI 云原生

区块链会员系统搭建,复利理财拆分模式开发部署

V\TG【ch3nguang】

理财系统 区块链系统开发 复利

区块链挖矿APP软件开发,质押流动性矿池模式系统搭建

V\TG【ch3nguang】

挖矿系统开发

redis分布式锁,setnx+lua脚本的java实现 | 京东物流技术团队

京东科技开发者

redis setnx Lua脚本 redis 底层原理 企业号 8 月 PK 榜

活动回顾丨云原生技术实践营长沙站(含 PPT)

阿里巴巴云原生

阿里云 云原生

成品直播源码平台消息传递的协议:MMS协议

山东布谷科技

软件开发 消息传递 成品直播源码 MMS 多媒体短信协议

Office 2019正式版 办公软件套装Office 2019 mac激活版

mac

苹果mac Windows软件下载 office 2019 办公软件套装

撮合前端平台在低代码平台的落地实践 | 京东云技术团队

京东科技开发者

前端 中台架构 低代码平台 企业号 8 月 PK 榜 撮合

NFT艺术品交易平台开发搭建

V\TG【ch3nguang】

NFT数字藏品系统

AI区块链量化交易平台搭建开发

V\TG【ch3nguang】

量化交易系统开发

蓝易云:Ubuntu Linux中如何删除Firefox Snap?

百度搜索:蓝易云

firefox 云计算 Linux ubuntu 运维

生成式AI引领数据中心网络升级

百度开发者中心

#人工智能 ChatGPT 文心一言

公链系统搭建技术方案,公链系统应用开发

V\TG【ch3nguang】

公链 区块链系统开发

19 个最佳Three.JS 示例

3D建模设计

ThreeJS

一道经典面试题:@Configuration 和 @Component 有何区别?

江南一点雨

Java spring

软件测试/测试开发丨Selenium 高级定位 Xpath

测试人

程序员 软件测试 测试开发 selenium xpath

如何实现AI的矢量数据库

3D建模设计

人工智能 机器学习 AI

蓝易云:CentOS7系统安装和配置 DRBD?实现高可用性和数据冗余教程!

百度搜索:蓝易云

云计算 Linux centos 运维 DRBD

架构师日记-软件工程里的组织文化 | 京东云技术团队

京东科技开发者

架构 软件工程 自动化测试 企业号 8 月 PK 榜 组织文化

中国传统文化国际交流大会暨《传承进行时》非遗晚会启动

Geek_2d6073

3种OC渲染透明背景的方法

Finovy Cloud

学习 自学 渲染 建模 渲染器

60个令人兴奋的ThreeJS网站示例

3D建模设计

three.js

免费共享大文件的10种方法,分享大文件传输的解决方案

镭速

5 种 可帮助开发人员提高工作效率的AI 工具

3D建模设计

人工智能

基于深度学习的机器视觉表计识别

鲸品堂

人工智能 深度学习 数据 企业号 8 月 PK 榜

GameFi模式链游搭建,养成、PK类链游系统开发

V\TG【ch3nguang】

区块链游戏 gamefi

802.11be-IPQ9574+IPQ9554 802.11ax-IPQ8074+IPQ8072 Support 8 data streams in 4 frequency bands, with a peak rate of 16Gbps

wifi6-yiyi

802.11AX 802.11be

使用 TiDB 作为 ZaloPay 商户平台核心数据库_数据库_Tan To Nguyen Duy_InfoQ精选文章