关于数据库:数据引擎助力车娱融合新业态-让秒杀狂欢更从容

32次阅读

共计 3670 个字符,预计需要花费 10 分钟才能阅读完成。

一年一度的双十一又双叒叕来了,给技术人最好的礼物就是大促技术指南!而通过这些年的倒退,大促早已不仅仅局限于电商行业,当初各行各业其实都会采纳相似形式做经营流动,汽车界有 818,电商有 618、11.11 等等,各种各样的大促场景,对包含数据库在内的根底软件提出了很多新挑战,同时也积攒了诸多最佳实际。

在双十一到来前,PingCAP 与汽车之家、易车网、京东、中通等用户开展一系列深入探讨,心愿为大家揭秘逐年飙升的销量背地暗藏着什么样的技术难题?用什么技术架构能力安稳地扛住流量洪峰?

818 寰球汽车节

中国互联网有三大购物节,11.11、618 还有 818。

618 与 11.11 都是大家十分相熟的,818 则比拟非凡,它是专为购车用户打造的节日狂欢。汽车之家“818 寰球汽车夜”,就是由汽车之家与湖南卫视联手打造的汽车行业顶级盛典,到往年曾经胜利举办三届。

绝对于其它两个购物节,818 能够说是全世界惟一的,其余任何汽车最发达的国家也没有这类流动。对此,汽车之家资深工程师张帆解释道:“我个人感觉,当初做电商和线上交易的这一块,地球上应该没有哪个国家能超过中国。而为什么汽车之家是最早来做这个事件的呢?首先,汽车之家是寰球访问量最大的汽车类型网站。正是有着这样微小的凝聚力与用户根底,汽车之家能力做这个事件,能力在宽广用户中带来这样的影响力。此外,这个流动的初衷就是心愿为汽车用户和汽车爱好者,提供一个相似于 11.11、618 一样真正能在买车的时候失去优惠的机会,因而广受用户欢送。”

从 2019 年开始,汽车之家与湖南卫视单干的“818 寰球汽车夜”曾经继续了三年。与传统大促不同,818 寰球汽车夜通过电视直播和与 APP 流动同步的形式将汽车购物节推到顶峰,为 8 月的汽车行业带来一场购车盛宴。

818 直播流动带来的挑战

张帆坦言,在汽车之家的 818 流动中,直播环节是最难的。与录播齐全不同,直播的过程中,会有十分多的变数,兴许会有节目工夫的拉长,兴许会有主持人的即兴施展,兴许后盾还会有一些突发的数据处理。而作为整场晚会的亮点,一元秒杀车、红包抽奖以及超级大锦鲤等流动,是用户参与度最高,峰值流量呈现的环节。这些流动开始与完结的机会,必须以秒级的精度来让前台、后盾配合。

直播当天,汽车之家通常会专门派一支团队到湖南卫视直播现场,通过手机、电话、5G 对讲机、在线视频连线等多路通信与位于北京的“作战室”之间实时沟通。因为直播信号通常比现场信号晚一分钟,当后面主持人在说三二一秒杀开始后,后盾其实只有一分钟的筹备工夫。一分钟后,就要让电视机前的上百万用户在手机上真的能看到三、二、一,秒杀的按纽点亮,能够去按下它参加流动。这个过程齐全不能出错,必须实现一比一同步。

整个过程对于前方“作战室”中的张帆他们来说,感触十分直观。这个“作战室”内有数据大屏、监控大屏,以及现场直播的信号和直播看到的电视信号。每一次秒杀开始或红包开始时,监控大屏中的几条线就会随着参加人数和互动次数的减少出现断崖式的稳定。这些代表着业务指标的线被他们称作“心电图”,而在直播中某些高人气明星出场时,这个稳定甚至会比其余时段高 2-4 倍多。

与此同时,现场的数据大屏也在以 1-2 秒的速度,实时展现大概 20 项数据指标,包含流动参加人数、用户互动次数、奖品发放状况,甚至细化到这一轮一元秒杀车流动参加的用户有哪些人,在什么中央,中了什么车。

这些实时的数据不仅会被后盾工作人员看到,同时数据也会实时展现到直播现场。这对现场流动的氛围起到了十分重要的衬托作用。举例来说,当用户在屏幕前看到这场晚会人气火爆,并真的有许多人参加到一元抢车互动中,这对他而言就相当于一个反向激励,继而也参加其中。
在这个过程中,实时数据大屏不仅要解决实时交易问题,还要将实时剖析数据反馈给现场的主持人。当主持人简直实时地将中奖信息公布出来时,晚会氛围也推到了高位,这对于吸引更多人参加其中起到了关键作用。而随着秒杀的车越来越贵,越靠后零碎所接受的波峰也越高。绝对于汽车之家平时的业务,晚会经验的流量翻了十倍都不止,对整个零碎的压力显而易见。

汽车之家大促解决之道——分布式系统全家桶

大促场景通常要求零碎具备疾速扩大与高可用的能力,而分布式系统人造就具备这种能力。汽车之家采纳了全家桶式的分布式系统,包含数据库、队列、缓存等。

其中,分布式数据库次要体现出三种能力,别离是程度高扩展性、容灾能力、云端能力。基于分布式架构的 TiDB 从一开始就反对这些个性,并在汽车之家的场景中失去了很好的验证。

汽车之家数据库负责人陶会祥示意,传统关系型数据库,如 MySQL、SQL Server 等,在数据量特地大时,经常会碰到一些数据库单机承载能力下限的问题。TiDB 从 TiDB Server,到 TiKV、PD 都能够进行程度扩大,性能随着程度扩大能够失去线性晋升,很好地满足了汽车之家对于性能和扩展性的要求。

818 对于汽车之家而言是一年中最重要的流动,零碎必须保障相对的牢靠稳固。所以这次 818 流动,汽车之家在私有云上采纳了同城三核心部署 TiDB 集群,防止万一某一个机房出了问题,影响整体流动的服务质量。

同城三数据中心计划,即同城有三个机房部署 TiDB 集群,同城三数据中心间的数据同步通过集群本身外部(Raft 协定)实现。同城三数据中心可同时对外进行读写服务,任意一个数据中心故障时,集群能主动复原服务,不须要人工染指,并能保证数据一致性。TiDB 同城三核心架构在 818 晚会期间顺利地撑持了业务,运行体现非常稳固。

汽车之家 818 TiDB 集群整体架构图

本次 818 我的项目中,汽车之家应用了 TiDB 最新的版本 5.1.1,MySQL 的版本是 Percona 5.7.25;
TiFlash 是 TiDB HTAP 状态的要害组件,它是 TiKV 的列存扩大,次要用于 OLAP 业务。TiFlash 跨区部署进步容灾能力,汽车之家利用 TiFlash 解决统计分析类的 SQL,实时展现在大屏;

TiCDC 是一款通过拉取 TiKV 变更日志实现的 TiDB 增量数据同步工具,具备将数据还原到与上游任意 TSO 统一状态的能力,反对其余零碎订阅数据变更。TiCDC 跨区部署,将 TiDB 集群数据实时同步至上游的 MySQL 数据库,作为故障应急的备份,实现业务容灾能力的晋升;
MySQL 跨区部署主从,作为 TiDB 集群的应急、降级之用,实现业务容灾能力的晋升。

数据库压测

在 818 流动前,数据库团队联结业务方一起做了一轮一轮严格的故障演练压测,确保后端的高可用。

陶会祥走漏,汽车之家的故障演练分为多种,光数据库就会演练主库故障和机房故障,一共做了三轮。每一轮测试中 TiDB 的体现都十分优良,KV 故障根本在几十秒,只需 20 秒即可复原,即便机房故障也能在一分钟之内进行主动切换。

为了保障流动安稳撑持,PingCAP 社区技术专家间断三年为汽车之家提供了社区技术支持。在往年的压测环节中,社区技术专家与汽车之家 DBA 一起实现了调优,良好地解决了写入热点问题,将性能翻了好几倍。最终在 818 顶峰期间,TiDB 顺利撑持了晚会期间 APP 用户 9048 万次互动,并抗住了最大每秒 40 万行的写入,SQL 99 稳固在 30ms 以下。TiCDC 性能体现也非常强劲,向上游 MySQL 同步速度高达 13 万行每秒。跨核心的 TiFlash MPP 架构,为大屏近实时展现助力总次数、秒杀和摇奖的每轮参加用户等信息提供了强有力的撑持。

陶会祥都对大促中 TiDB 的体现给予非常高的评估:TiDB 在这种十亿以上的数据量级场景下是非常适合的,一是 TiDB 的剖析能力是实时的,二是 TiDB 的数据存储能力比传统数据库,如 SQL Server 之类强太多。TiDB 联合了传统数仓和传统关系型数据库的长处,非常适合利用在大促这种量级的业务环境。

将来布局

汽车之家的数据库团队在本次 818 大促中,也总结出了十分多的最佳实际:

如同城三核心五正本架构,机房之间提早该当尽量小,最好管制在 2ms 以内;

OLTP 的业务,通常压测瓶颈在于 TiKV 的磁盘 IO 上,对于一般 SSD,能够做成 RAID0 来晋升 IOPS;

一旦某个可用区整体故障,失常不须要手动干涉,然而为了防止性能降落重大,倡议手动将五正本调整为三正本;

正当设计表构造和索引,尽量避免热点问题,和业务一起做好充沛压测,压测期间尽早发现问题并优化。

基于本次流动中的良好体现,陶会祥示意,汽车之家接下来还会在更多业务中推动 TiDB 上线。比方以前汽车之家的很多数据会跑在 Hive 里,须要到第二天能力晓得昨天产生了什么事。如果利用 TiDB,能够针对经营须要的用户数据、业务指标的剖析,去做秒级的准实时推送,预计可能将这一时间压缩到 5-10 秒。业务方能够立刻晓得上一刻用户有什么变动,数据有什么更新。

618、11.11 对于企业而言,除了反对业务翻新,也是一次对本身技术架构的大练兵和全链路演练。通过极致考验,企业的 IT 架构、组织流程、人才技能都取得了大幅晋升。而在此过程中的教训和思考,也会减速企业日常的业务翻新节奏,晋升技术驱动的翻新效率,打造增长新引擎。

正文完
 0