性能提升5倍!翼支付基于多租户的降本增效实践

作者:王硕 中国电信翼支付 DBA

翼支付是天翼电子商务有限公司旗下第三方服务平台,面向 7000 万月活用户,提供民生缴费、消费购物、金融理财等服务内容,依托云计算、大数据、人工智能等技术,联合合作伙伴,赋能超 1000 万家线下商户门店及 170 余家线上知名电商。

作为拥有千万月活用户的服务平台,翼支付与生活息息相关,其业务不仅种类繁多且复杂,与此同时需要对相关数据进行存储和处理,当前的数据库方案出现存储空间吃紧、分析实时性差、成本难以掌控、运维难度增大等问题,亟需选型和替换架构以保证业务长期的稳定运行。

在此大背景下,翼支付深入调研分析了市面已有的分布式数据库方案,最终将 OceanBase 作为首选方案。

该方案在真实场景测试和验证后,性能方面较旧方案提升 5 倍,硬件成本下降 57%,存储空间节省 10%,机器成本与运维成本极大降低。于是决定将消息中心、账单中心等业务由某国产数据库替换成 OceanBase ,同时将已有的 MySQL 业务逐渐迁移至新方案。

图片

在早期的数据库方案中,某国产数据库主要应用于账单中心、征信及反洗钱等业务场景并发挥了重要作用。随着月活用户量的不断增加,相关联的业务也在不断增长,在实际使用中遇到以下 3 个主要问题。

一、租户不隔离

由于我们在某国产数据库集群中放置了很多库,因此多个库之间共享集群资源,在某些库对应的业务流量高峰期时,业务之间互相影响,严重影响使用体验。

二、硬件成本高


在运维过程中,为了保障业务的稳定性,避免不同业务之间互相影响,通常对业务进行物理隔离,即不同的业务使用不同的数据库环境,因此多套业务对应多套数据库环境。也就是说,为了保证业务的稳定性,一个业务一套集群且集群的每个角色都配备一台机器,以账单中心和消息中心为例,原有的方案需要分别部署数据库环境且一套数据库环境即需要消耗7台机器,共需要 14 台机器。虽然业务之间做到了隔离,但是成本昂贵,性价比不高。

三、稳定性不够好

以消息中心业务为例,测试中发现某些在某国产数据库中查询较慢且出现秒级别尖刺,业务不定期出现抖动现象。

考虑到公司业务大多已采用两地三中心部署方案,业务层面也应用了双活架构,对比市面上的分布式数据库,OceanBase 正好提供两地三中心部署,并且每个中心都可以提供业务访问,完美契合了当前公司的业务架构。

图片

此外,作为国内典型的分布式方案,OceanBase 具有原生分布式架构,支持金融级高可用、透明水平扩展、分布式事务、多租户和语法兼容等企业级特性。并且:

一、性能更高

每个节点都具备计算和存储能力,当业务计算要求增加或者数据量快速增长时,通过增加节点来扩展计算和存储能力,同时一体化架构使得分布式集群组件之间和组件内部 RPC(Remote procedure call)消耗更少,业务访问尽可能本地完成,减少不必要的 RPC 交互,性能更好。在实际测试中,我们发现通过增加硬件资源,集群的性能线性增长,符合预期。

二、成本更低


在业务使用中,使用租户隔离特性非常便捷地将多个业务放在一套或极少数量的环境进行运维,加上官方配套的运维管控平台 OCP 、数据迁移工具 OMS  等等生态工具,使得运维复杂度极大地降低。在实际测试中,我们发现在硬件层面,相比其他数据库方案,OceanBase  资源消耗更少。综合评估下来,使用 OceanBase  成本更低。

三、稳定性更好

业务表对应的数据在底层以多个数据分片形式存在,在分布式架构下,单表的数据可以均衡分布在不同的节点,不需要复杂的分库分表方案;同时在底层数据存储时,数据存储多份(默认三副本)同时引入多数派 paxos 选举协议,在集群少数节点或者副本故障、异常时,确保上层业务不会受到影响,同时业务数据不丢失。

图片

图1 OceanBase  典型三副本架构

这三个特性是当前业务最需要、最看重的能力,因此,OceanBase 数据库成为了解决我们业务问题的首选方案。

图片

在确定选型方案后,我们对 OceanBase  3.1.4 版本与某国产数据库进行各方面的对比。在实际环境中,对业务进行了简单改造,采用业务双写的方式验证对比某国产数据库与 OceanBase 方案。测试结果超出我们的预期:

第一,硬件成本下降 57%,同时资源消耗显著降低。OceanBase 的多租户特性具备资源隔离的能力,因此我们将账单中心和消息中心业务迁移至 OceanBase 环境,并使用多租户能力分别创建业务租户,机器资源从原来的 14 台机器变为 6 台,硬件成本降低 57%,同时多套业务集中在一套环境运维,日常管理更加方便。

在 CPU  使用率方面,账单中心和消息中心在某国产数据库环境中,CPU 平均使用率 20%-25%,在 OceanBase 环境中, CPU 使用率为 5% 左右;在存储空间上,某国产数据库需要占用 19TB  的空间,OceanBase 的存储空间占用为 17TB ,节省空间约 10%。同等业务量下,OceanBase  方案资源消耗更少。

第二,性能提升 5 倍,单表分析能力提升 10%-20%。在消息中心业务中,某国产数据库消息状态更新接口耗时平均在 10ms ,同等条件下 OceanBase 使用分区键的响应 latency 持续稳定在 2ms ,响应时间更短且稳定。另外,线上的账单业务有一个 200 亿大表,在hash 分区策略下,OceanBase 单表分析能力较某国产数据库提升了 10%-20%,

第三,极大减少运维成本。在数据库集群管理方面,借助 OceanBase 提供的 OCP 白屏管理工具,OceanBase 集群能够实现统一管理,我们的 DBA 可以直接登录 OCP 平台对所有集群进行日常操作与维护,管理界面如图 2 所示,减少了大量的管理成本。

图片

图2 OCP集群管理界面

除日常运维管理能力外,OCP 也提供了对集群的监控和告警服务,如图 3 所示,我们可以直接从 OCP 页面看到各个集群的运行状态,在出现异常的时候发出报警。

图片

图3 OCP监控界面

当前我们的业务环境中OceanBase 已经支持了消息中心、账单中心等业务服务。结算中心、反洗钱业务后续会全部迁移至OceanBase 。

图片

对于此次的数据库技术方案选型以及实际使用效果反馈,总体来说让我们有些出乎意料。我们将此次选型成功的重要因素和经验总结为以下 3 点,供大家参考。

第一、业务平滑迁移

通常在数据库迁移过程中,我们最关心的问题就是如何保证"服务不停、数据不丢"的同时最大化降低数据迁移的时间和成本。我们使用 OMS 平滑、准确、高效地解决了 MySQL 环境迁移数据的问题,降低了业务迁移成本,同时兼容性方面做到应用不需要修改即可完成迁移。比如,在某国产数据库迁移中,我们选择使用某国产数据库的 Binlog  工具来完成某国产数据库到 OceanBase 的数据平滑迁移。

第二、统一平台管理,提升运维效率

OceanBase 环境使用一套 OCP 环境管理,不需要单独对每一套环境进行运维和管理,帮助运维人员便捷地进行环境管理和运维工作,同时其自带的监控和告警系统大大提高了问题发现的实效性,使问题能够更加高效、快捷的被解决。

第三、多租户能力及资源隔离优势明显

在实际使用中如商城业务会分很多库,为了避免这些库之间资源发生争抢从而导致其他库无法正常运行,将库按租户进行分离,利用租户的资源隔离能力,限制每个库的使用资源额度。并且,租户资源可以灵活调整,所以,每个库的资源也可以动态调整,从而保证业务的稳定性和灵活性。

以上就是翼支付的数据库技术方案选型过程及感受,希望能对正在考虑数据库选型的朋友一些提供参考价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/71313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion---Ai绘画-下载-入门-进阶(笔记整理)

前言 注:本文偏向于整理,都是跟着大佬们学的。 推荐两个b站up主,学完他们俩的东西基本就玩转SD为底的ai绘画: 秋葉aaaki,Nenly同学 1.首先SD主流的就是秋叶佬的Webui了,直接压缩包下载即可,下…

深度学习(十一)---zed 调用yolov5 进行识别目标并实时测距

1. 前言 zed 相机测距有2种方式:一种是根据点云数据进行测试,二是根据zed获取深度值进行测距。上篇文章 调用yolov5模型进行实时图像推理及网页端部署 我们讲述了zed调用yolov5进行目标识别,我们在此基础上进一步实现目标测距功能。 2.深度…

数据分析因子评分学习

当多个因素影响一个结果时,我们需要综合考虑这些因素分别对结果德影响。因子评分就是用于比较其对结果德影响程度。 文章目录 前言一、案例背景二、解决方案(一)分析思路(二)剔除无关数据(三)求…

ac7260网卡不能连5g

之前路由器是双频,最近为了连物联网一堆,把双频拆成两个wifi 结果电脑上装的pdd网卡就罢工了,连4g可以,但是连5g网络就不行,连上却没网,导致网盘下东西慢。刚开始以为是tplink的易展问题,结果看…

CSS中如何实现元素的旋转和缩放效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 元素的旋转和缩放效果⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏…

element ui 表格组件与分页组件的二次封装

目录 效果图 组件封装 parseTime函数 debounce 函数 页面使用 【扩展】vue 函数式组件 函数式组件特点: 函数式组件的优点: 【扩展】vue中的render函数 一、初步认识render函数 二、为什么使用render函数 三、render函数的解析 【扩展】添加…

HDFS文件删除后,HIVE元数据还存在的问题

一.背景 手动在hdfs上删除了一个表的分区数据(inc_day2023-08-30),当查询这个表这个分区的数据时报错文件不存在 二.原因 即HDFS数据删除了,但是hive metastore元数据却没有更新,使用show partitions tablename 发现该分区还存在 三.解决办法…

【 Tkinter界面-练习04】 画板作画详细揭示

一、说明 对画布的掌握分三个部分,将图形paint到画布、动画move、鼠标画;本篇将侧重于鼠标画的功能,提起鼠标画实现,将涉及一系列组合操作才能完成,这里将一一加以介绍。 Canvas 小部件具有大量功能,我们不…

C++提高篇:深入理解纯虚函数和抽象类

在C中,纯虚函数和抽象类是面向对象编程中重要的概念。本文将会深入探讨这两个概念的含义、如何定义和使用它们,以及它们在实际开发中的应用。 一、什么是纯虚函数? 在C中,纯虚函数是指在基类中声明但没有实现的虚函数。纯虚函数的…

2023全国大学生数学建模ABCDE选题建议,思路模型,小白要怎么选?难度怎么样

首先最重要的&#xff0c;难度C<B<A&#xff0c;D、E题推荐选E题 大家可以查看我们的视频讲解&#xff0c;在这里&#xff1a;【2023全国大学生数学建模竞赛选题建议&#xff0c;难度分析&#xff0c;小白应该怎么选】 https://b23.tv/S6O26uc 选题建议视频播放​b23.t…

设备管理系统有什么功能?它有什么用?

设备管理系统已成为现代化大规模研究所&#xff0c;信息化管理体系建设中最为关键的要素。随着工业设备的机械化、自动化、大型化、高速化以及复杂化等因素不断叠加&#xff0c;设备设施对于工业生产的作用和影响越来越大&#xff0c;其各项制度和流程也涉及面广、内容繁杂。  …

私有化部署即时通讯平台,完美替代飞书和钉钉的SaaS系统

在当今快速发展的数字化时代&#xff0c;企业对于安全、灵活、可定制的即时通讯平台需求不断增长。作为一家领先的品牌&#xff0c;WorkPlus专注于提供私有化部署的即时通讯平台&#xff0c;完美替代飞书和钉钉的SaaS系统。本文将重点介绍WorkPlus如何通过创新的解决方案&#…

系统学习Linux-PXE无人值守装机(附改密)

目录 pxe实现系统自动安装pxe工作原理 大致的工作过程如下&#xff1a; PXE的组件&#xff1a; 一、配置vsftpd 二、配置tftp 三、准备pxelinx.0文件、引导文件、内核文件 四、配置dhcp 配置ip 配置dhcp 五、创建default文件 六、新建测试主机用来测试装机效果 七、…

2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测数据分析详解+思路+Python代码

2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测数据分析 十分激动啊啊啊题目终于出来了&#xff01;&#xff01;官网6点就进去了结果直接卡死现在才拿到题目&#xff0c;我是打算A-E题全部做一遍。简单介绍一下我自己&#xff1a;博主专注建模四年&#xff0c;参与…

STC单片机+EC11编码器实现调节PWM输出占空比

STC单片机+EC11编码器实现调节PWM输出占空比 📌相关篇《stc单片机外部中断+EC11编码器实现计数功能》 📍《STC15单片机特有的PWM寄存器和普通定时器实现PWM输出》 🎬效果演示: 🌼 通过逻辑分析仪获取P11引脚上的信号波形,查看其对应输出的占空比。 ✨本例程基于上面两…

复制粘贴是怎么实现的

在上面的代码中&#xff0c;command 和 select 是自定义的函数。它们的作用如下&#xff1a; 实现复制粘贴的思路&#xff1a; 创建一个 textarea 标签将 textarea 移出可视区域给这个 textarea 赋值将这个 textarea 标签添加到页面中调用 textarea 的 select 方法调用 docum…

(c++)类和对象 上篇

目录 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 5.类的作用域 6.类的实例化 7.类的对象大小的计算 8.类成员函数的this指针 1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步…

外滩大会今日开幕 近20位“两院”院士、诺贝尔奖和图灵奖得主齐聚

2023 Inclusion外滩大会9月7日在上海黄浦世博园正式开幕。这场以“科技创造可持续未来”为主题的大会为期三天&#xff0c;近20位“两院”院士、诺贝尔奖和图灵奖得主&#xff0c;全球超500位有影响力的科技领军企业和专家学者&#xff0c;将在此带来一场科技、人文和产业的思想…

Linux下go环境安装、环境配置并执行第一个go程序

一、安装 1.Golang对Linux的内核版本要求 GO对Linux内核版本最低要求是 2.6.23&#xff0c;对应要求操作系统版本是&#xff1a; RHEL 6.0CentOS 6.0即&#xff0c;不支持 (RHEL 和 CentOS) 的 (4.x or 5.x)。2.下载golang的代码版本 Golang的官网下载地址&#xff1a;https:…

Vue2+Vue3基础入门到实战项目(七)——智慧商城项目

Vue 核心技术与实战 智慧商城 接口文档&#xff1a;https://apifox.com/apidoc/shared-12ab6b18-adc2-444c-ad11-0e60f5693f66/doc-2221080 演示地址&#xff1a;http://cba.itlike.com/public/mweb/#/ 01. 项目功能演示 1.明确功能模块 启动准备好的代码&#xff0c;演示…