印尼“支付宝” DANA 如何借力 OceanBase 实现3个“关键零”

当前,移动支付在东南亚正迅猛发展,据谷歌、淡马锡与贝恩公司发布的报告预测,东盟地区蓬勃兴起的移动支付市场有望在2030年突破至2万亿美元的交易规模。
在此背景下,DANA作为印尼——东南亚最大经济体中的一员,秉持着推动“无现金社会”的宏伟愿景,经过过去六年的不懈努力,已悄然崛起为印尼电子钱包及支付服务领域的佼佼者,其用户基数已接近2亿。
在 DANA 快速发展的过程中,一套强大且可扩展的技术基础设施至关重要,在对比了性能、产品、稳定性、迁移成本等多方因素后,DANA 选择了 OceanBase 为其提供数据库底层支持。
一、DANA 崛起,海量交易数据应运而生
DANA 成立于 2018 年,处于印尼迅速发展的数字领域的前沿,一出现迅速成为该国领先的电子钱包和支付服务之一,截至 2024 年,DANA 已拥有接近 2 亿的庞大用户基础,作为印度尼西亚无处不在的数字支付服务,DANA 近两年开始了其增长和转型之旅。
DANA 的征程始于一个愿景:在印尼创造一个无现金社会,为大众提供安全、可靠和创新的金融服务。基于此愿景,DANA 不断丰富自己的业务场景,包括转账、信用卡绑定、余额充值等,并成为首家与印尼快速响应代码标准(QRIS)网络集成,实现二维码支付的电子钱包。
由于服务范围广泛,DANA 每年可以记录数 10 亿次的交易数据,也正因此,其在国内电子钱包领域处于领先者的地位。然而,在 2018 年初,随着线上交易和商家合作的迅速增长,很快,DANA 就遇到了可扩展性和可持续性不足的障碍,原有使用的数据库无法满足现有系统需求,诸如交易管理、支付处理、账单、会员和营销等都开始运行缓慢。
如何在高并发和不可预测的交易背景下,一直保持数据库系统的稳定性,并保证可靠的性能和运行稳定成为了 DANA 亟需解决的问题。除此以外,DANA 还面临着数据丢失和长时间停机的风险,以及从本地部署向混合云部署过渡的复杂性。
DANA 技术运营与工程副总裁 Zikry Zakiyulfuadi 介绍:“DANA 最初采用的是类似 MySQL 的数据库,由于在线交易和合作商家数量快速增长,每当高峰时期,原有的用于交易管理、支付、账务、会员和营销等系统的数据库就很难灵活扩容,系统容量多次达到上限,这促使 DANA 寻求更强大的数据库解决方案。”
二、与 OceanBase 结缘,启动数据库升级工作
OceanBase 自 2010 年起投入研发,在应对电商发展带来的用户和交易量增长方面,有很好的实践经验——支付宝。
支付宝作为中国移动支付的先行者,也是 OceanBase 的首批用户之一,十余年成长,OceanBase 经历了支付宝大规模金融场景的多年打磨,曾成功应对在高峰时期每秒 6100 万次查询的交易量。
可以说其所具备的高可用、容灾性能等非常适配 DANA 所遇到的问题。由于可预见的流量增长,原本的 MySQL 数据库显然已经达到容量限制,得益于 OceanBase 在电子支付行业数据库升级的成功经验,DANA 在 2018 年选择了与 OceanBase 合作,并开始启动其数据库升级工作。
OceanBase 认为:为避免停机和数据丢失,数据库的可靠性和高可用性至关重要;其次性能也是关注的重点,OceanBase 的目标是低延迟和高吞吐量,借此去提供无缝的用户体验。Zikry 补充说:“OceanBase 的分布式架构使 DANA 能够在业务高峰期无缝扩展。这种分布式数据库与传统银行或企业中使用的数据库架构不同。传统的是主-备,但在 OceanBase 中,我们是主-主。”
这意味着,不是由主服务器处理全部工作负载,备份服务器仅在发生故障时才激活,而是主-主高可用集群能均匀分配工作负载至所有节点,确保最优的负载平衡。
三、实现混合云部署,做到 3 个“关键零”
当 DANA 在 2019 年开始从本地架构迁移到混合云架构的旅程时,OceanBase 再次为其提供了至关重要的技术助力。
DANA 首席技术官 Norman Sasono 在上周参加了 OceanBase 的首届海外技术峰会。他在会上分享:”与 OceanBase 的合作过程中,DANA 对分布式数据库有了更深入的了解,也让 DANA 更熟悉混合云架构,自己和团队的专业知识都上了一个新台阶,正是通过与 OceanBase 的合作,我们才决定建立一个现代化、统一的数据库,以确保我们的技术弹性和业务增长。”

Norman 指出,根据他们的经验,100%的本地部署或 100%的公共云都不是 DANA 的最佳选择。他发现,对于常规工作负载,本地运行更经济,但在遇到高流量峰值时,需要将工作负载转移到云端。
2019 年 DANA 开始部署混合云,借助 OceanBase 促成了无缝过渡,使 DANA 拥有了“弹性伸缩能力”,特别是在需要支持系统高可用性时,能灵活地将工作负载移动到公共云。
同时,OceanBase 还提供了备份能力,基于 OceanBase 的多活能力,DANA 实现三机房混合云部署,即使三个数据中心之一不堪重负,仍有两个备份可用。有了这样的技术基础设施,在随后的 2020 年,DANA 实现了零数据库故障和零数据丢失,整体业务系统可用性超过 99.99%。
Zikry 补充说:“ OceanBase 能够在最小环境运行,每秒可以处理数千次交易,可以无缝支持 DANA 的业务增长,保证业务高峰期间也可以稳定运行。OceanBase的可扩展性加上 RTO<8 秒的容灾水平,以及 7*24 的全球远程技术支持,确保了DANA 即使交易量飙升,也能保持高性能和可靠性。”
此外,采用 OceanBase 最显著的好处是 DANA 实现了三个关键的零:零停机时间、零数据丢失、零数据不一致。每个节点都有相同的数据,所以不会有数据丢失。同步的时间在亚毫秒级,非常快。
这种稳定性和数据完整性非常有利于在用户和商家之间建立信任。Norman 补充说,随着 DANA 的在线交易和商户合作每年呈指数级增长,一个可扩展、可持续的数据库解决方案至关重要。
四、持续深耕,越来越懂海外用户
目前,DANA 的用户数仍在持续增长中。Zikry 介绍,2023 年底 DANA 用户数为约 1.5 亿,目前已增长到约 1.8 亿,而印尼总人口已超过 2 亿,这意味着对数字化技术的需求仍有巨大空间。
OceanBase 作为一款国产数据库,在过去几年也在持续加快出海脚步。在海外市场,OceanBase 选择在电商、零售、物流、电子支付等实战经验最丰富的行业进行深耕,不仅输出技术,更传递实战经验。
目前在全球,OceanBase 已拥有超过 1000 家客户,除印尼电子钱包 DANA 外,还应用在菲律宾电子钱包 GCash、非洲电子钱包 PalmPay、伊拉克国家信用卡 QiCard 等众多海外用户。
未来,OceanBase 将持续助力 DANA 的每一笔「支付」都算数,协同 DANA 让印尼人民的生活更加便捷美好。
相关文章:
印尼“支付宝” DANA 如何借力 OceanBase 实现3个“关键零”
当前,移动支付在东南亚正迅猛发展,据谷歌、淡马锡与贝恩公司发布的报告预测,东盟地区蓬勃兴起的移动支付市场有望在2030年突破至2万亿美元的交易规模。 在此背景下,DANA作为印尼——东南亚最大经济体中的一员,秉持着推…...
2018-2022 年份微博签到数据集
前阵子接到一个实验室老师的需求,采集五年前(2024-52019)过年前后的北京微博签到数据。 前两年采集的深圳签到数据是 2022 年是当年的尚可,这次虽然时间跨度只有两个月,但是由于时间太过久远,但是颇费了一…...
Avalonia开发实践(二)——开发带边框的Grid
一、开发背景 在实际开发工作中,常常会用到Grid进行布局。为了美观考虑,会给每个格子加上边框,如下图: 原生的Grid虽然有ShowGridLines属性可以控制显示格子之间的线,但线的样式不能定义,可以说此功能非常…...
Java泛型的定义与运用
泛型 泛型的作用从使用层面上来说是统一数据类型,防止将来的数据转换异常。从定义层面上来说,定义带泛型的类,方法等,将来使用的时候给泛型确定什么类型,泛型就会变成什么类型,凡是涉及到泛型的都会变成确…...
Java如何自定义注解及在SpringBoot中的应用
注解 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说…...
微软 Edge 浏览器全解析
微软 Edge 是微软推出的一个现代化浏览器,继承了 Internet Explorer(IE)的部分功能,但在速度、安全性和兼容性方面做出了很大改进。下面是对微软 Edge 浏览器的详细解析,包括其特点、安装、配置和常见问题的解答。 微软 Edge 浏览器的特点 基于 Chromium 内核 Edge 浏览…...
C++ 八股(1)
C语言中strcpy为什么不安全?如何解决? 主要原因是缺乏对输入长度的边界检查,容易导致缓冲区溢出漏洞。 解决:可以使用strncpy函数替代,或者在程序最顶端加入代码段 #define _CRT_SECURE_NO_WARNINGS 缓冲区溢出 …...
超高精电容传感器PCAP01调试+LABVIEW数据可视化调试手记
PCAP01超高精电容传感芯片STM32LabView可视化 文章目录 PCAP01超高精电容传感芯片STM32LabView可视化一、PCAP01介绍1.1、PCAP01引脚定义1.2、电容测量1.3、温度测量1.4、PCAP典型测试电路 二、PCAP01的STM32驱动2.1、SPI协议配置2.2、PCAP01浮空电容测量内部温度测量操作流程 …...
5.更多
发现一个项目与 MkDocs 类似的项目 PyMdown 拓展文档 ,等待探索。 1.排版模仿 以下网站使用 MkDocs 构建 Material for MkDocs 的美化 - Charles Les Notebook (charleschile.com) Documentation - Home Assistant (home-assistant.io) Godot Docs – master bra…...
ConditionalOnJndi注解使用介绍、应用场景以及示例代码
概述 ConditionalOnJndi 是 Spring Framework 中的一个条件注解,用于在特定的 JNDI (Java Naming and Directory Interface) 环境条件下决定是否创建一个 bean 或配置一个 bean。JNDI 是 Java EE 规范中定义的一种用于访问命名和目录服务的 API,它允许 …...
Spring Cloud 引入
1.单体架构: 定义:所有的功能实现都打包成一个项目 带来的后果: ①后端服务器的压力越来越大,负载越来越高,甚至出现无法访问的情况 ②业务越来越复杂,为了满足用户的需求,单体应用也会越来越…...
自定义波形图View,LayoutInflater动态加载控件保存为本地图片
效果图: 页面布局: <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:la…...
每日一道算法题 求最小公倍数
题目 求最小公倍数_牛客题霸_牛客网 (nowcoder.com) Python 辗转相除法 dividend,divisormap(int,input().split()) #被除数,除数 # remainder0 余数 # 最小公倍数 def lcm(dividend,divisor):# 最大公约数def gcd(dividend,divisor):if 0divisor:return divid…...
【OCC学习18】三维几何对象工具包:TKG3d
【OCC学习18】三维几何对象工具包:TKG3d loveoobaby 已于 2022-08-26 10:10:32 修改 阅读量1.2k 收藏 10 点赞数 1 分类专栏: OpenCascade学习笔记 文章标签: 学习 版权 OpenCascade学习笔记 专栏收录该内容 24 篇文章60 订阅 订阅专栏…...
【Unix】SunOS/Oracle Solaris系统介绍
一.SunOS系统介绍 SunOS 是由 Sun Microsystems 开发的 Unix 操作系统。它最初是为 Sun 的 SPARC 架构计算机设计的,后来也支持了 Intel x86 架构。SunOS 是基于 UNIX System V 4.1 版本,并且随着时间的发展,SunOS 经历了多个版本迭代&#…...
氛围感视频素材高级感的去哪里找啊?带氛围感的素材网站库分享
亲爱的创作者们,大家好!今天我们来聊聊视频创作中至关重要的一点——氛围感。一个好的视频,不仅要有视觉冲击力,还要能够触动观众的情感。那我们应该去哪里寻找这些充满氛围感且高级的视频素材呢?别急,我这…...
基于Java的学生选课系统
第1章 系统概述 1.1概述 背景:随着计算机网络技术的发展,Web 数据库技术已成为应用最为广泛的网站架构基础技术。学生选课系统作为教育单位不可缺少的部分,其内容对于学校的决策者和管理者至关重要。传统的人工管理方式存在效率低、保密性差等…...
802.11漫游流程简单解析与笔记_Part2_05_wpa_supplicant如何通过nl80211控制内核开始关联
最近在进行和802.11漫游有关的工作,需要对wpa_supplicant认证流程和漫游过程有更多的了解,所以通过阅读论文等方式,记录整理漫游相关知识。Part1将记录802.11漫游的基本流程、802.11R的基本流程、与认证和漫游都有关的三层秘钥基础。Part1将包…...
STM32的 DMA(直接存储器访问) 详解
STM32的DMA(Direct Memory Access,直接存储器存取)是一种在单片机中用于高效实现数据传输的技术。它允许外设设备直接访问RAM,不需要CPU的干预,从而释放CPU资源,提高CPU工作效率,本文基于STM32F…...
14-65 剑和诗人39 - 打造你自己的 Devin
绝密 Devin 架构 更具体地说,构建您自己的 AI 代理。 Devin 使用 GPT-4 ,而人们已经开始用 Claude-3-Opus 构建替代方案 Devin 的 UI 体验更好。 例如,它甚至看不到浏览器,但它确实存在于用户面前 此外,你可以随时与它“交谈”,就像与人交谈一样,它会在后…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
