POLARDB是阿里云自研的下一代关系型云数据库,100%兼容MySQL,存储容量最高可达100TB,性能最高提升至MySQL的6倍,适用于企业多样化的数据库应用场景。POLARDB采用存储和计算分离的架构,所有计算节点共享一份数据,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务。本文就介绍了百胜软件的阿里云数据库最佳实践,为大家分享POLARDB如何帮助百胜应对数据库的“巅峰时刻”。

百胜软件的业务

上海百胜软件股份有限公司成立于2000年,是国内知名的全渠道新零售解决方案服务商,为鞋服、运动、家居、日化、美妆、珠宝、食品等品牌企业提供管理咨询和信息化解决方案,业务涵盖全渠道中台、零售分销、供应链、电子商务、移动应用、大数据等领域。

目前,百胜软件与旗下22家分子公司及全国100多家星联服务机构,为客户提供专业及时的服务支持,安全保障30多万家实体门店和2万多家网上商店的日常运营。新零售时代百胜软件致力于为中国零售企业提供全渠道新零售解决方案,帮助客户实现零售转型和商业创新,成就智慧品牌,创造非凡价值。

百胜iSHOP在线商城是以移动互联网时代消费者驱动业务为核心,充分满足企业在不同触点场景下实现互动、体验、便捷交易的统一及业务成长的中高端电子商务销售平台。

百胜iSHOP在线零售商城

百胜软件面临的挑战

百胜目前服务30多万家实体POS门店与2万多家网上商店,随着业务量增长与业务波动传统的关系型数据库难以满足业务增长需求。具体而言,百胜所面对的业务挑战主要有以下两点:

挑战1:高峰时刻交易延迟激增
在使用阿里云数据库之前,百胜软件采用的是自建数据库。当时规模最大的零售终端业务在节假日的高峰时期经常会出现卡顿,平时2秒内可完成的交易激增到10到15秒才能够完成,甚至会出现交易失败,需要重新交易现象。

挑战2:数据库容量接近极限,业务被迫延缓
在使用阿里云数据库之前,百胜软件的自建数据库容量已经接近极限,业务扩展被迫因此延缓。当时出现的情况是:只有当历史数据被归档和清理之后,才能接入新业务。

为何选择阿里云POLARDB

首先,阿里云POLARDB简单易用,它100%兼容MySQL,原有的使用MySQL数据库的应用程序代码无需更改,就可以在POLARDB上运行。其次,阿里云POLARDB具有极致性能,其针对数据库内核进行深度优化,读性能最高能达到MySQL的6倍。再次,POLARDB采用分布式块存储设计和文件系统,使得存储容量不限制于单节点的规格,能够轻松扩展,应对上百TB级别的数据规模。此外,阿里云POLARDB还有高可用和高可靠保障,并且具有较高的数据安全性。

其实,百胜最为看重的就是阿里云POLARDB所具有的快速弹性能力,无论是增删节点还是升降级配置,都能够在3分钟内生效,这使得百胜能够在业务高峰期快速扩展只读实例。而在快速扩展能力的背后则是因为阿里云POLARDB由多个节点构成的数据库集群,该集群具有一个主节点,还可以扩展出多个读节点。其对外默认提供了两个地址,一个是集群地址,一个是主地址,一般而言推荐使用集群地址,因为它具备读写分离功能可以把所有节点的资源整合到一起对外提供服务。

阿里云POLARDB集群架构

POLARDB读写分离的会话读一致性助力全渠道迈向新零售

在百胜软件所最为看重的POLARDB快速扩展只读实例能力的背后,其核心技术其实是POLARDB读写分离的会话读一致性。传统数据库解决方案的读写分离都只提供最终一致性的保证,主从复制延迟会导致从不同节点查询到的结果不同。POLARDB采用的是读写分离的架构,而为了解决这种情况下查询结果不确定的问题,而传统解决方案往往会增加应用开发的负担,还会增大主库的压力,影响读写分离的效果。为了应对上述挑战,POLARDB提供了会话一致性的保证。会话一致性也就是保证在同一个会话内,后面的请求一定能够看到此前更新所产生版本的数据或者比这个版本更新的数据,保证单调性。其实现原理如下所示:

POLARDB读写分离会话读一致性的实现原理

在POLARDB的链路中间层做读写分离的同时,会跟踪各个节点的redolog位点,也就是LSN。每次更新时会记录此次更新的位点为Session LSN, 当有新请求到来时则会比较Session LSN和当前各个节点的LSN,仅将请求发往LSN >= Session LSN的节点,从而保证了会话一致性。因为POLARDB采用了物理复制方式,速度极快,因此并不会对于主库造成太大压力。另一方面,由于大多数应用场景都是读多写少,通过经验也验证了该机制能够保证会话一致性,同时也保证了读写分离负载均衡的效果。

在阿里云的帮助下,百胜软件将自身在线零售商城后台的MySQL数据库改为阿里云的POLARDB数据库,借助POLARDB强大的读写分离能力,百胜软件能够在业务压力增长时通过增加只读实例来轻松应对,而在业务高峰期过后,又可以轻松地删除只读实例或降低配置来综合控制成本。阿里云POLARDB的弹性扩容、在线升级、数据安全可靠、高可用保障,以及零成本上云迁移的优秀特性极大地助力了百胜在全渠道上迈向新零售。

百胜iSHOP基于阿里云的数据库解决方案

阿里云POLARDB采用容器虚拟化技术和共享的分布式块存储技术,使得数据库服务器的CPU、内存能够轻松实现扩容,并且帮助百胜软件在2到3分钟内完成增加只读节点的操作。此外,对于数据库存储容量的扩容也能在线完成,而无需中断业务,在很大的程度上解决了硬件性能的瓶颈问题。

阿里云POLARDB采用白名单、VPC网络、SSL加密、数据多副本存储等全方位手段,帮助百胜软件在数据库数据访问、存储、管理等各个环节提供安全保障。POLARDB采用了Active-Active的高可用集群架构,直接通过可读写的主节点和只读的Replica节点之间进行Failover切换,与传统的Active-Standby相比,用同样成本为百胜带来了更好的系统访问性能。

除此之外,阿里云POLARDB能够100%兼容MySQL,因此借助上云迁移工具DTS,百胜可以将已有数据库无需改造直接非常平滑低迁移到POLARDB。与此同时,这也使得百胜软件的客户以更低的成本享受到商业数据库的性能和可靠性。

使用阿里云数据库解决方案为百胜带来的收益

借助于阿里云的数据库解决方案,百胜的iSHOP在线零售商城系统即便是在业务的高峰时刻也可以保持在1秒内完成交易,有效地保障了各类促销活动的顺利开展。而新的数据库允许在线上保存90天内的交易数据,而无需归档和清理,也为后续BI进一步分析业务变化和趋势提供了大量的数据。

在世界杯期间,百胜软件的客户投放了大量广告,而借助阿里云POLARDB的强大能力,百胜成功应对了数亿次的总曝光量,以及高并发的需求。百胜借助阿里云POLARDB强大的计算能力、Active-Active高可用集群架构、极速扩展增加只读实例的机制,顺利度过了世界杯活动期间的数次高峰,极大地提升了用户体验,顺利完成了为客户活动的保驾护航。

1月19日,阿里云数据库技术沙龙——云原生数据库POLARDB核心技术分享将在北京昆泰酒店举行,对POLARDB核心技术细节感兴趣的同学欢迎点击链接报名参加~

阿里云POLARDB如何帮助百胜软件应对数据库的“巅峰时刻”的更多相关文章

  1. 阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云

    5月21日,阿里云PolarDB发布重大更新,提供传统数据库一键迁移上云能力,可以帮助企业将线下的MySQL.PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成.据估算,云上成本 ...

  2. 阿里云POLARDB如何帮助猿辅导打造“孩子喜欢老师好”的网课平台?

    海量的题库.音视频答题资料.用户数据以及日志,对猿辅导后台数据存储和处理能力都提出了严峻的要求.而由于教育辅导行业的业务特点,猿辅导也面临着业务峰值对于数据库能力的巨大挑战.本文就为大家介绍阿里云PO ...

  3. 阿里云POLARDB如何助力轻松筹打造5亿用户信赖的大病筹款平台?

    轻松筹首创了“大病救助”模式,帮助了众多病患在第一时间解決了医疗资金等问题,为了从源头解决了医疗资金问题.而在轻松筹这样全球5.5亿用户信赖的大病筹款平台的背后,是日益增长的各种数据.面对这样数据量所 ...

  4. Tapdata 与阿里云 PolarDB 开源数据库社区联合共建开放数据技术生态

      近日,阿里云 PolarDB 开源数据库社区宣布将与 Tapdata 联合共建开放数据技术生态.在此之际,一直专注实时数据服务平台的 Tapdata ,也宣布开源其数据源开发框架--PDK(Plu ...

  5. 阿里云POLARDB 2.0重磅来袭!为何用户如此的期待?

    点击报名:POLARDB 2.0 升级发布会 回顾POLARDB 1.0升级之路 POLARDB 1.0主要的改进包括采用了计算存储分离的架构,完全兼容MYSQL,性能是原生MySQL的6倍.一个用户 ...

  6. 阿里云POLARDB荣膺2019中国数据库年度最佳创新产品

    在日前的DTCC 2019(第十届中国数据库技术大会)上,阿里云自研云原生数据库POLARDB获选2019中国数据库——“年度最佳创新产品”. POLARDB是阿里云在2018年正式商业化的云原生数据 ...

  7. 阿里云容器服务--配置自定义路由服务应对DDOS攻击

    阿里云容器服务--配置自定义路由服务应对DDOS攻击 摘要: 容器服务中,除了slb之外,自定义路由服务(基于HAProxy)也可以作为DDOS攻击的一道防线,本文阐述了几种方法来应对普通规模的DDO ...

  8. 阿里云PolarDB及其共享存储PolarFS技术实现分析(下)

    上篇介绍了PolarDB数据库及其后端共享存储PolarFS系统的基本架构和组成模块,是最基础的部分.本篇重点分析PolarFS的数据IO流程,元数据更新流程,以及PolarDB数据库节点如何适配Po ...

  9. 云原生数据库崛起,阿里云POLARDB当选世界互联网领先科技成果!

    第六届世界互联网大会来了!千年水乡古镇乌镇又一次吸引了全世界的目光. 刚刚,阿里云自研数据库POLARDB在会上当选世界互联网领先科技成果.POLARDB解决了企业在云时代的数据库难题,帮助企业在数小 ...

随机推荐

  1. 【Luogu】【关卡2-8】广度优先搜索(2017年10月)

    任务说明:广度优先搜索可以用来找有关“最短步数”的问题.恩,也可以用来“地毯式搜索”.

  2. 发布后台接口报错:could not load file or assembly 'mysql.data,' version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d

    本地调试正常,但是服务器上面一直报错:could not load file or assembly 'mysql.data,' version=6.7.4.0, Culture=neutral, P ...

  3. Eclipse如何设置jsp文件默认UTF-8格式编码

    我使用的是Eclipse Jee Neon, Window->Preferences 具体设置如图所示: 

  4. Jmeter-【If控制器】-__jexl3函数&__groovy函数

    一.使用场景 根据请求返回结果中某一字段的取值判断往下走的流程.例如: 二.__jexl3函数实现 格式:${__jexl3(,)} 三.__groovy函数实现 格式:${__groovy(,)}

  5. Dart编程实例 - Const 关键字

    Dart编程实例 - Const 关键字 void main() { final v1 = 12; const v2 = 13; v2 = 12; } 本文转自:http://codingdict.c ...

  6. 【LeetCode 13】罗马数字转整数

    题目链接 [题解] 就是上一题反过来的过程. 因为有说一般情况下后面的罗马数字是小于前面的罗马数字的. 如果前面的罗马数字小于后面的罗马数字了. 说明出现了4,9,40,90这些特殊情况. 那么就得判 ...

  7. centos7安装kylo0.10.1

    安装环境centos7,kylo版本0.10.1 常用的链接地址 kylo官网:https://kylo.io/ kylo文档:https://kylo.readthedocs.io/ 下载地址 官网 ...

  8. Openstack组件部署 — Nova overview

    目录 目录 前文列表 前言 Compute service overview Nova 的组件 nova-api service nova-api-metadata service nova-comp ...

  9. Dubbo入门到精通学习笔记(十一):Dubbo服务启动依赖检查、Dubbo负载均衡策略、Dubbo线程模型(结合Linux线程数限制配置的实战分享)

    文章目录 Dubbo服务启动依赖检查 Dubbo负载均衡策略 Dubbo线程模型(结合Linux线程数限制配置的实战分享) 实战经验分享( ** 属用性能调优**): Dubbo服务启动依赖检查 Du ...

  10. UVA - 143 Orchard Trees (点在三角形内)

    题意: 给出三角形的三个点的坐标(浮点数),     问落在三角形内及三角形边上的整点有多少? 思路:所有点暴力判断(点的范围1-99,三角形可能是0-100,因为这个WA了一下orz) AC代码: ...