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

432 阅读8分钟

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

百胜软件的业务

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

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

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

百胜iSHOP在线零售商城

百胜软件面临的挑战

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

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

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

为何选择阿里云POLARDB

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

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

阿里云POLARDB集群架构

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

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

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

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

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

百胜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高可用集群架构、极速扩展增加只读实例的机制,顺利度过了世界杯活动期间的数次高峰,极大地提升了用户体验,顺利完成了为客户活动的保驾护航。