支撑 2715亿元海量订单 揭秘京东大促背后的数据库基石
京东智联云作为京东集团技术保障的基石,在 11.11 期间,云数据库扛住了京东物流和京东零售核心业务系统 PB 级别的数据增长压力,是 2020 年 618 期间访问峰值的 258%。截至 11 月 12 日凌晨,京东 11.11 累计下单金额超 2715 亿元,同比 2019 年增长 33%。
面对每年京东 618、11.11 订单量和成交额迅猛的增速,京东智联云数据库作为大部分京东背后业务系统的技术保障,面临较大的挑战。本篇文章将分享京东智联云云数据库部门如何在 11.11 期间保障大促突增数据压力的稳定性与安全性,同时介绍有哪些技术手段为大促期间的京东海量订单保驾护航?
京东对用户每一笔订单的生命周期流程(商品搜索-选购-加购物车-下单)都需要实时响应,尤其是在商品下单环节。11.11 大促期间受商品活动和优惠时间的影响,用户下单高峰往往在固定时间段,比如零点后是一个小高峰。面对集中时间段内订单量突增,QPS 是平时全天总量的 30-50%,同时又要保证用户订单生命周期及其查询操作的实时性,京东采用云数据库 JCHDB 作为数据分析保障的技术基石。
分析型云数据库 JCHDB 是京东智联云基于 ClickHouse 打造的联机分析(OLAP)服务,采用分布式架构,可实现多核、多节点的并行化大型查询,其查询性能比传统开源数据库快 1 ~ 2 个数量级,可充分满足大促期间业务系统数据分析的需求。
京东海量订单实时分析需要数据仓库快速查询与并发处理能力,用户订单生命周期数据实时消费 kafka 消息,流经 flink 再写入到 JCHDB 集群,该场景需要既保证数据分析的实时性,又要保证集群的性能,查询响应时间不变。JCHDB 对批量数据写入支持的写入速度大约为 50-200MB/s,但订单实时分析往往是频繁小批量写入,对集群的 ZooKeeper 节点不太友好。云数据库通过优化 ZooKeeper 的 JVM 参数及云盘的并发度使用户高频率小批量写入,在 JCHDB 集群上稳定运行。
在用户实时写入的场景中,会偶发出现数据写入速度过快,数据合并(merge)不及时,造成写入频繁失败。云数据库团队优化了对 JCHDB 集群的写入操作,在能够满足实时查询性能不变的前提下,尽可能地大批量低频次写入,充分发挥集群的高性能优势。同时也对集群的参数进行调优,在业务系统压力较大时也可以能够很好地为其服务,提高了系统整体的稳定性。
JCHDB 对海量实时订单数据分析整体流程图如下:
京东智联云数据库团队需要在 11.11 期间平稳支撑京东集团已经上云的上千个核心业务系统,抵抗大促期间百万 QPS、PB 级别数据压力。前期的预案准备和压测、预案演练和实时监控都是必不可少的环节。11.11 大促期间需要云资源可按需扩容,完备的业务降级预案,以应对突如其来的业务压力。
每年 11.11 期间大促备战都是京东集团各部门通力合作的关键时刻,根据 618 经验,11.11 期间大促备战共分为 8 个步骤:
(1)识别保障范围;
(2)业务量预估及预检查;
(3)预案整理;
(4)监控及报警梳理;
(5)业务压测;
(6)预案演练;
(7)11.11 值班;
(8)技术复盘。
具体大促备战技术细节请见《京东大促备战手册》。
大促备战 8 步流程图:
预案整理是云数据库保障 11.11 期间海量数据稳定和安全的重要环节,云数据库 RDS 通过服务高可用架构、自动故障切换、弹性扩容机制等一系列数据库级别的技术手段,保证 11.11 大促期间有一定的预案和响应机制,保证数据可备份,故障可切换,增量可扩容,从容应对大促期间海量数据压力,客户只需要关注业务本身的增长而不需要担心数据运维与业务压力迅猛增长带来的烦恼。
数据可备份:京东智联云云数据库采用高可用架构,支持单可用区、多可用区两种部署方式。单可用区部署在创建时,通过反亲和性保证主备不能同机架,避免单机架故障导致实例不能访问的问题。多可用区部署,将网络延迟降低到 2 毫秒内保证备库复制的及时性。自研的哨兵系统支持动态扩展,可承载海量实例监控服务,通过 http 和 tcp 等多种协议对心跳上报异常的实例进行探测访问,在满足多数哨兵节点投票的情况下进行客观下线发起自动高可用流程。
云数据库高可用架构示意图:
故障可切换:高可用架构另一个优势是可以做到故障秒级切换。当云数据库管理节点收到哨兵系统发来的自动高可用请求,对故障实例再次探活,从用户子网、管理网两个方面进行连通性确认,确保主库真实下线后开始故障切换。为保证数据完成性首先会将备库回放日志应用完成,然后切换 vip 后面的 target ip,使得服务可以在短时间故障后继续访问。同时系统会自动创建一个新的备库保证高可用架构。
云数据库故障自动切换处理流程:
增量可扩容:京东智联云云数据库团队和云盘团队深度合作,将读写性能进行调优,充分利用云硬盘特有的弹性扩展和增量快照技术,将数据库扩容变得简单高效。使用云硬盘的实例可在 3~5 分钟内扩容到任意存储空间。使用本地盘的实例,支持原地垂直扩容,通过在线热扩展的方式秒级生效,满足用户扩容需求。
云数据库基于云盘扩容示意图:
京东智联云云数据库部门在 11.11 期间不仅支持了大促订单实时海量数据的订单与数据分析,更有一系列标准化方案和完备的技术备战流程支撑 11.11 期间海量数据和业务的挑战。今年 11.11“开门红”期间,云数据库整体 QPS 峰值达到 502.4 万次/秒,数据流量峰值 1183Gbps,京东智联云扛住了流量洪峰,保障了大促期间各业务系统平稳运行。
京东智联云云数据库提供了从创建、配置、扩容、监控报警、性能分析等一站式数据库服务,实现了从自助运维到自动运维的转变,支撑了京东零售、京东物流、京东 AI,京东健康等海量的核心业务,并通过一系列标准化的方案和备战流程应对大促期间峰值数据流量和业务压力的挑战。同时,京东智联云云数据库具备的服务高可用,数据高可靠,在线弹性伸缩等特性可满足用户突发的峰值压力和苛刻的业务场景,历经多次大促考验,是企业上云的不二之选。
推荐阅读:
欢迎点击【京东智联云】,了解开发者社区
更多精彩技术实践与独家干货解析
欢迎关注【京东智联云开发者】公众号
版权声明: 本文为 InfoQ 作者【京东科技开发者】的原创文章。
原文链接:【http://xie.infoq.cn/article/a4fd6266572cbb36ce2c3f0af】。文章转载请联系作者。
评论