热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

技术升级&行业升级TiDB助力易车打造超级汽车狂欢节

在11.11到来前,PingCAP与汽车之家、易车网、京东、中通等用户展开一系列深入探讨,希望为大家揭秘逐年飙涨的销量背后隐藏着什么样的技术难题?成立于2000年的易车,是国内最

作者:luzizhuo

原文来源:https://tidb.net/blog/f4bc70b2

导语 :一年一度的 11.11 又双叒叕来了,给技术人最好的礼物就是技术指南! 而经过这些年的发展,购物节早已不仅仅局限于电商行业,现在各行各业其实都会采用类似方式做运营活动,汽车界有 818,小米有米粉节等等,这对包括数据库在内的基础软件提出了很多新挑战,同时也积累了诸多最佳实践。\
在 11.11 到来前,PingCAP 与汽车之家、易车网、京东、中通等用户展开一系列深入探讨,希望为大家揭秘逐年飙涨的销量背后隐藏着什么样的技术难题?用什么技术架构才能平稳地扛住流量洪峰?



汽车界的“大促”狂欢节

成立于 2000 年的易车,是国内最早一批汽车互联网平台企业之一,为汽车用户提供专业、丰富的互联网资讯服务,提升用户在选车、购车、用车和换车过程中的全程体验。

在今年“ 818 ” 期间,易车与浙江卫视联合推出了一台综合汽车工艺秀、明星歌舞演出和明星综艺秀的车界“春晚”——“易车超级 818 汽车狂欢夜”。在为汽车用户带来视听盛宴、购车福利的同时,晚会还推出超 150 台半价车的超值福利,观众可边看晚会边抢 5 折售卖的好车,同时还有购车红包、抵扣券、车款直降等多重优惠,得到实实在在的购车福利。截至晚会结束,全平台观看直播人次达2.24亿,获得线上订单4.39万,累计成交额(GMV)64.2亿元。


易车的大促首秀

在易车的 818 狂欢节中,数据库的应用场景有很多,其中实时数据看板是主要的应用业务之一。看板可以实时展示易车 818 购车节的专题、活动、流量、线索、互动等数据表现,是大数据平台的整体数据输出。

由于易车的这场汽车狂欢夜是台网互动的直播活动,摇一摇(红包、半价车、易车币)和主会场分会场直播节目的投票都是用户参与度最高、数据流量最大的环节。在整个活动过程中,不仅要求数据库能够存储海量数据,同时还要求能够应对高并发、低延迟等场景需求。这里的数据库不仅会作为数据存储的介质,还会作为实时计算的数据源头,配合流量数据,实现秒级数据实时播报。

数据库和 Flink 是整个系统中非常重要的两个组件,Flink 的数据来源包括数据库和业务流量数据,所以数据库不仅要满足数据秒级实时推送,还要支持 Flink 高并发的读写请求。

易车数据库负责人田震坦言,易车网今年是第一次做大促,没有太多经验,量也不好预估,很多需求都是在最后才提出。为了保险起见,DBA 团队在设计大促方案时做了降级方案,但谁都不希望真的实施降级,这对用户的体验太不友好。所以整个 DBA 团队将主要精力放在压测上,并按照平时的两个数量级(100倍)来规划数据库压测方案。

一开始,易车考虑的首选数据库依然是 MySQL。但在压测过程中,为了保证计算结果的实时性,实时任务会频繁对数据库进行大批量数据写入,MySQL 主从延迟高,极端情况下引起的 MySQL 主从切换,切换时间过长,导致数据库出现短暂不可用状态。同时,实时任务会持续写入大量数据,引起磁盘爆满。在分秒必争的直播过程中这肯定是无法容忍的。

在情势急迫下,田震想到了 TiDB。


“在游泳中学游泳” TiDB 临危受命

实际上,田震很早就接触过 TiDB ,那时候他一度认为 TiDB 是一款海外产品,了解 TiDB 主要也是从海外社区开始的。但出于谨慎的原因,田震希望将产品研究透彻再正式上线。本次大促给了双方合作一个完美的契机,他形容这一过程就像是“在游泳中学游泳”。

TiDB 社区的技术支持给了易车 DBA 们非常重要的帮助,从七月正式立项,仅用了不到一个月时间就完成了选型、方案设计、压测、上线部署,并在“818”中有惊无险地将大促流量平稳承载过来。

image

\
818汽车狂欢数据看板业务架构图

在整个 818 活动中,TiDB 被用作 818 汽车狂欢节数据看板的核心数据库。易车准备了两套 TiDB 集群,和实时计算的主备方案一一对应。业务研发通过双写的方式把数据同时写入两个集群,一部分业务的查询链接集群 1 ,另一部分业务的查询连接集群 2,当其中一个集群出现问题,应用端就会切换到另外一个集群。两个 TiDB 集群都是部署了 3 个 TiDB Server、3 个 PD Server、6 个 TiKV 节点、2 个 TiFlash 节点。此外,还准备了 4 台机器做扩容以免数据量暴涨集群支撑不了。

最终,易车 818 汽车狂欢节期间数据量达到了平时的 10倍以上,在直播最后蔡徐坤出场时,数据库流量更是直接翻了四倍,差点启用事先准备好兜底用的一键扩容方案。在整个过程中,818 汽车狂欢数据看板业务 SQL 999 始终控制在 8ms 以内,SQL 99 在 3ms 左右,QPS 达到 62k。

image\
红包摇一摇业务架构图

同时,TiDB 也作为容灾方案被应用在红包摇一摇业务中,避免由于业务流量暴涨引起 MySQL 不可用的情况。一旦发生不可用,业务方可以直接将数据库切换到 TiDB。TiDB 在整个业务中需要作为数据源、实时计算维表和实时计算结果存储引擎三个角色。TiDB 通过 TICDC 将数据实时推送到 KAFKA 中,为了保证 TICDC 稳定高效,易车为 TiDB 中的每个库创建了一个 TICDC任务,将数据实时推送到指定 KAFKA 中,然后 FLINK 负责将同一个 TOPIC 中的属于不同库表的数据进行解析,分流到库表对应的 TOPIC 中,提供给实时计算业务使用。实时计算任务消费 KAFKA 中的 TiDB 数据进行业务逻辑计算,同时还需要从 TiDB 中查询对应的维度数据,最终将计算结果再输出到 TiDB 中。


高速增长的挑战:技术栈统一

大促的极限场景总能发现一些平时注意不到的问题,在易车的高速发展中,很多业务为了快速迭代、迅速上线,引入了非常多的技术栈,如 Lambda 、 Kappa 等大数据架构,Kylin、Druid、Clickhouse 等实时数仓等等。但易车 DBA 团队却只有 6个人,管理如此多的技术栈无疑是一个很大的挑战。

统一技术栈成为易车 DBA 团队的最佳选择,借着这次大促的机会,易车希望用 TiDB 上线取代 Kylin、Druid、Clickhouse ,简化技术栈,DBA 团队也能将注意力放回专职工作上。

TiDB 的 HTAP 架构是一个混合了交易型事务和分析处理的融合架构,由于都是在同一个架构、同一套数据中,解决了易车实时数仓数据流延迟的问题。数据不用再从 OLTP 数据库复制出来,经过漫长的 ETL 清洗等过程进入分析工具。

而 TiDB 对 MySQL 的完美兼容,对 DBA 和开发者意味着不需要做什么改变,只要会 SQL 就能使用。而在以往应用 Hadoop 或 Spark 时,由于学习成本比较高,对使用造成了一定壁垒。

经此一役,易车的业务方对 TiDB 平添了许多期待与信任。未来,易车的广告、媒体平台、网站、投放数据、广告效果都希望能够实时看到,田震希望借用 TiDB 覆盖易车整个混合技术栈的场景,与其他数据流进行打通,这些都需要 TiDB HTAP 对实时数仓进行支持。

编后语:大促对于企业而言,除了支持业务创新,也是一次对自身技术架构的大练兵和全链路演练。通过大促的极致考验,企业的 IT 架构、组织流程、人才技能都获得了大幅提升。而在大促中的经验和思考,也会加速企业日常的业务创新节奏,提升技术驱动的创新效率,打造增长新引擎


更多大促文章:

数据引擎助力车娱融合新业态 让秒杀狂欢更从容 技术文章


导语 :一年一度的 11.11 又双叒叕来了,给技术人最好的礼物就是技术指南! 而经过这些年的发展,购物节早已不仅仅局限于电商行业,现在各行各业其实都会采用类似方式做运营活动,汽车界有 818,小米有米粉节等等,这对包括数据库在内的基础软件提出了很多新挑战,同时也积累了诸多最佳实践。 在 11.11 到来前,PingCAP 与汽车之家、易车网、京东、中通等用户展开一系列深入探讨,希望为大家揭秘…


TiDB + 京东云数据库打造极速秒杀体验 技术文章


一年一度的 11.11 又双叒叕来了,给技术人最好的礼物就是技术指南!而经过这些年的发展,购物节早已不仅仅局限于电商行业,现在各行各业其实都会采用类似方式做运营活动,汽车界有 818,小米有米粉节等等,这对包括数据库在内的基础软件提出了很多新挑战,同时也积累了诸多最佳实践。 在 11.11 到来前,PingCAP 与汽车之家、易车网、京东、中通等用户展开一系列深入探讨,希望为大家揭秘逐年飙涨的销…



推荐阅读
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 在Linux系统中,原本已安装了多个版本的Python 2,并且还安装了Anaconda,其中包含了Python 3。本文详细介绍了如何通过配置环境变量,使系统默认使用指定版本的Python,以便在不同版本之间轻松切换。此外,文章还提供了具体的实践步骤和注意事项,帮助用户高效地管理和使用不同版本的Python环境。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 随着“大数据”价值的日益凸显,从互联网、电商到金融和政府机构等各个领域都在积极应对海量数据的处理需求。如何以较低成本快速高效地构建大数据处理平台,已成为推动大数据应用创新的重要因素。为了帮助用户以最简便的方式实现这一目标,本文将详细介绍如何利用Hadoop和Spark技术搭建稳定可靠的大数据处理环境。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 美团优选推荐系统架构师 L7/L8:算法与工程深度融合 ... [详细]
  • 本书《.NET Core 2.* 开发者指南》是面向开发者的全面学习与实践手册,涵盖了从基础到高级的各个层面。书中详细解析了 .NET Core 的核心概念,包括如何创建 .NET Core 网站,并通过视频教程直观展示操作过程。此外,还深入探讨了 Startup 类的作用、项目目录结构的组织方式以及如何在应用中使用静态文件等内容。对于希望深入了解 .NET Core 架构和开发技巧的开发者来说,本书提供了丰富的实践案例和详尽的技术指导。 ... [详细]
author-avatar
2012-末日审判
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有