印尼“支付宝” 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 体验更好。 例如,它甚至看不到浏览器,但它确实存在于用户面前 此外,你可以随时与它“交谈”,就像与人交谈一样,它会在后…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...