大数据实时链路备战——数据双流高保真压测

京东云开发者
• 阅读 72

作者:京东零售 京东零售

一、大数据双流建设

1.1 数据双流

大数据时代,越来越多的业务依赖实时数据用于决策,比如促销调整,点击率预估、广告分佣等。为了保障业务的顺利开展,也为了保证整体大数据链路的高可用性,越来越多的0级系统建设双流,以保证日常及大促期间数据流的稳定性。建设核心数据链路双机房,双流双活。同时双流建设需要整条链路上的所有环节双机房部署占用了双倍的物理资源;整个建设过程要协同上下游各环节(数据生产方、数仓加工方、中间处理节点、业务消费方),也会消耗大量的沟通建设成本。为了达到资源消耗和业务稳定性的平衡,特制定双流建设标准和实施流程以引导业务方合理评估双流需求,顺利开展双流建设实施。

1.2 数据双流的建设评估维度和标准

编号 维度 评估标准 标准定义 & 备注
1 系统等级 0级系统 0级系统为公司最核心的业务服务系统,一旦发生不可用会直接影响黄金交易流程或影响公司名誉、品牌、集团战略、营销计划等,可能造成P0-P2级事故发生。0级系统的定义以零售子集团线上事故定级、定责及扣分标准中4.1-4.2定义为准。0级系统会在服务器资源和人力资源方面有倾斜,但0级系统要确保高可用,会与事故级别紧密关联。
2 任务等级 L0实时任务 服务线上0级系统的任务具体任务等级细侧参见实时数据平台作业分级管理规范协议等级设置参考说明。
3 物理资源 业务方申请并且承担双流建设所需要的物理资源消耗物理资源成本合理。备流按照主流80%的承载量建设(资源的80%) 业务方需要提供具体的物理资源信息:a. 物理资源成本包括存储资源、计算资源、带宽、队列资源等。b. 涵盖上游生产系统存储、数仓加工方、中间处理节点、业务消费方等各个环节。c. 评估流量和交易两个方面
4 数据时效性 大促0点(或对应相应业务高峰点)数据时效性要求<=20分钟 或平时数据时效性要求<=40分钟
5 数据峰值 大促峰值预估(交易、流量)平时峰值预估(交易、流量) 数据峰值作为主要的参考,但是新系统在没有数据参考情况下,会根据业务是否是集团战略这一条做适当调整。其它条件满足,但是数据峰值很小的情况下,一般不建议双流,特殊情况另讨论。
6 生产源 生产源必须是双机房部署
7 业务场景 数据缺失会造成XX级事故 业务方提供完整的业务场景和发生故障时的影响以帮助评估

二、大数据双流憋坝高保真压测

2.1 双流憋坝压测

从21年大促备战开始,大数据侧核心数据链路,从单模块单任务的压测,转向全链路憋坝压测,把泄洪闸口上移,压测范围覆盖更广,流量和交易同时泄洪,高保真大促网络峰值,资源竞争场景,同时数据产品(黄金眼、商智、作战指挥室大屏)会在泄洪时同时进行读查询的压测,模拟大促读写峰值并行的真实大促场景。

2.2 双流憋坝的压测目标制定

(1) 压测目标设定,一般会参照历史峰值和市场预估,给出核心交易、流量主题链路峰值预估,例如22年双11的1.2倍。关键的数据流topic,会给出预估消费峰值供下游参考,如下表格所示(数据涉及保密不做详细展示)



大数据实时链路备战——数据双流高保真压测



2.3 双流憋坝的压测方案

(1)交易的憋坝方式,通过停止同步任务憋单 ,交易双流架构图如下所示:



大数据实时链路备战——数据双流高保真压测



(2)流量的憋坝方式,流量无损憋坝压测是通过停止采集服务写JDQ写集群的方式憋流,不参与压测的业务方,可以切换到 JDQ4澜沧江_点击流新建流 (压测期间新建JDQ写集群) 保证下游业务可以在憋流压测期间,正常消费流量实时数据,做到无损。



大数据实时链路备战——数据双流高保真压测



2.4 双流憋坝压测规范

(1)全链路压测的具体憋单、憋流开始时间以及泄洪时间,每次压测前,会提前24~48小时发出通知(邮件+工作群),通知发出后,泄洪时间不再调整

(2)全链路压测会进行集团报备,避开重要促销活动,压测要避开存储(hbase、jimdb、ES)、JDQ、JRC 等自身的灾备演练,以免无效压测

2.5 失真场景的高保真压测

平时订单中预售订单占比过低,预售订单 平日峰值/大促峰值=0.05%~5.9%,峰值也无法达到要求,且不能指定场景,例如付定金和付尾款场景。所以预售订单无法在双流憋坝压测中实现高保真,所以做了大数据预售链路的整体改造,联合在线军演压测(业务生产系统的压测)实现预售链路的高保真压测补充

落地方案:军演负责提供预售订单数据和付定金付尾款场景,大数据链路进行改造兼容压测进行数据压测且不污染线上数据

如下图所示: 黄色部分为在线军演提供数据的对应存储——影子库表 。绿色部分为压测新增,最上层为压测数据源(JMQ/JDQ) ,下面是为了压测搭建的透传压测环境以及写影子存储。黄金眼预售通用源和商智预售交易通用源对应任务改成双进双出,同时可以处理线上数据源和压测数据源,线上数据写入线上输出topic和线上存储。 压测数据源的数据处理后输出压测数据的topic,写入影子存储。这样线上拓扑不用随着每次压测改动,同时,下游业务方也可以灵活选择是否参与压测。



大数据实时链路备战——数据双流高保真压测



三、大数据憋坝压测期间,业务方的迁移方案

3.1 双流憋坝压测对于业务方的影响

****在大数据双流压测的憋流和憋单期间,憋流和憋单对应的机房(汇天/廊坊)无实时数据下发,泄洪后恢复。不参与压测的业务方,需要做对应的切换。

3.2 不参与压测的业务方的迁移方案

(1)切换集群:

A、交易不涉及,交易从源头topic都是双流双活,业务可以切换消费到不压测机房对应的topic即可

B、流量直接消费点击流吐出的topic,需要切换到无损压测集群 “JDQ4澜沧江_点击流新建流” 。本次切换集群,支持一键迁移,不用重启任务,要使用这次功能,需要升级jdq-sdk,jdq sdk版本是jdq4-clients:1.3.0-SNAPSHOT flink:1.10/1.12/1.14-1.0.9-SNAPSHOT。如果迁移过程中看不到集群“JDQ4澜沧江_点击流新建流” ,可以联系平运维同学支持

(2)切换topic鉴权

A、交易是双流,廊坊和汇天都有对应的topic,不参与压测的业务方可以申请,消费非压测机房对应的topic即可

B、流量不是消费采集服务直接吐出的topic,消费的是流量实时数仓及以下链路的topic,也是双流双活,切换消费到非压测机房对应的topic即可。



大数据双流憋坝压测(方案、影响、业务方迁移方案)——内部版本(这部分对外部保密不能发布,外网发布的时候这部分不需要,前面就是完整版本)

一、大数据双流憋坝简介

1.1 数据双流

大数据时代,越来越多的业务依赖实时数据用于决策,比如促销调整,点击率预估、广告分佣等。为了保障业务的顺利开展,也为了保证整体大数据链路的高可用性,越来越多的0级系统建设双流,以保证日常及大促期间数据流的稳定性。建设核心数据链路双机房,双流双活。同时双流建设需要整条链路上的所有环节双机房部署,占用了双倍的物理资源;整个建设过程要协同上下游各环节(数据生产方、数仓加工方、中间处理节点、业务消费方),也会消耗大量的沟通建设成本。为了达到资源消耗和业务稳定性的平衡,特制定双流建设标准和实施流程以引导业务方合理评估双流需求,顺利开展双流建设实施,详细参见:双流建设评估标准

1.2 大数据双流憋坝压测

从21年大促备战开始,大数据侧核心数据链路,从单模块单任务的压测,转向全链路憋坝压测,把泄洪闸口上移,压测范围覆盖更广,订单和交易同时泄洪,高保真大促网络峰值,资源竞争场景,同时数据产品(黄金眼、商智、作战指挥室大屏)会在泄洪时同时进行读查询的压测,模拟大促读写峰值并行的真实大促场景

1.3 大数据憋坝与军演的关系

(1)军演, 是针对生产业务系统的压测,主要涵盖首页、搜索、列表、商详、活动、购物车、结算页、订单、优惠券、礼品卡、支付、网关、OFC、物流、售后及依赖的上游动态系统。压测所用的sku是测试sku,压测的订单会打sendpay140=2或者3的标识,不会污染线上真实数据。

(2)大数据憋坝,是从停止同步任务开始,憋真实的线上流量,达到一定的量后,泄洪,所有压测数据都是真实线上数据。

(3)大数据憋坝与军演的关系:

A、军演压测数据不会影响大数据链路

B、大数据泄洪的时间,需要避开军演起量的时间,否则源头订单源泄洪会有拖尾

C、对于预售这种平时憋单,无法达到大促场景和量级的特殊订单场景,军演与大数据会做联合高保真压测􏱋􏰃􏱐􏱹􏰀􏰡􏰈􏱞􏰹􏰶

二、23年618双流憋坝压测的备战目标和压测方案

2.1 备战目标

按照22年双11峰值,目标1.2,挑战1.5(需要关注1.5倍任务运行情况,确保任务可以运行,预估延迟时间)

(1)流量按照22年双11的 1.2 倍预估,(微信手Q: 228w/min PC:50.3w/min M;601 w/min ,APP:4596w/min)

(2)交易按照22年双11的 1.2 倍预估,(stream-02-02-10200-sharding-jdorders:1260 w/min;OrderPipe_Submit:201.6 w/min)

采集服务层,2023年topic峰值预估如下:

平台 数据类型 topic名称 2022 双11 (w/m) 预估倍数 2023 618预估(w/m) 预估倍数 1.5倍预估峰值
PC 浏览 www.100000 41.93 1.2 50.3 1.5 62.9
PC 点击 other.000000 324.28 1.2 389.14 1.5 486.42
M 浏览 mo_j2011_1_pv 501.07 1.2 601.28 1.5 751.61
M 点击 mo_j2011_1_cl 6083.31 1.2 7299.97 1.5 9124.97
M 订单 mo_j2011_1_sr_od 18.85 1.2 22.62 1.5 28.28
App 浏览 ja2015_311210_pv 3830.68 1.2 4596.82 1.5 5746.02
App 浏览 ja2015_311210_pv_trim 3830.65 1.2 4596.78 1.5 5745.98
App 真实点击 ja2015_311210_cl 11707.75 1.2 14049.3 1.5 17561.63
App 真实点击 ja2015_311210_cl_trim 11706.86 1.2 1404823 1.5 17560.29
App 虚拟点击 ja2015_311210_cl_virtual 361.9 1.2 434.28 1.5 542.85
App 虚拟点击 ja2015_311210_cl_virtual_trim 362.13 1.2 434.56 1.5 543.2
App 曝光 ja2015_311210_ep 23875.5 1.2 28650.6 1.5 35813.25
App 订单 ja2015_311210_sr_od 142.38 1.2 170.86 1.5 213.57
App 订单 ja2015_311210_sr_od_trim 141.4 1.2 169.68 1.5 212.1
App 性能 ja2015_311210_sr_pf 1575.54 1.2 1890.65 1.5 2363.31
微信手Q 浏览 wg_wx.000000 190.33 1.2 228.4 1.5 285.5
微信手Q 点击 wg_wx.000001 426.6 1.2 511.92 1.5 639.9
微信手Q 曝光 wg_wx.000003 1222.87 1.2 1467.444 1.5 1834
微信手Q 搜索曝光专用的上报 wg_wx.000002 22.33 1.2 26.8 1.5 33.5
微信手Q 自定义类型 wg_wx.000007 65.91 1.2 79.1 1.5 98.9

2.2 双流憋坝的计划日期

(1) 5月 8 日 双流第一次压测,流量全链路 +交易廊坊

(2)5月 12日 双流第二次压测,流量全链路+交易汇天

(3)5月 22 日 双流第三次压测。 流量全链路 +交易廊坊

(4)5月24日 双流第四次压测,流量全链路+交易汇天

2.3 双流憋坝的压测方案

(1)交易的憋坝方式,通过停止同步任务憋单 ,交易双流架构图如下所示:



大数据实时链路备战——数据双流高保真压测



(2)流量的憋坝方式,无损全链路压测通过停止采集服务写JDQ写集群的方式憋流,不参与压测的业务方,可以切换到 JDQ4澜沧江_点击流新建流 ”, 保证憋流压测期间可以正常消费流量实时数据,做到无损。



大数据实时链路备战——数据双流高保真压测



2.4 双流憋坝压测规范

(1)全链路压测的具体憋单、憋流开始时间以及泄洪时间,每次压测前,会提前24~48小时发出通知(邮件+京me群),京me群: 23年大数据双流压测启动”,群号:1024432664 通知发出后,泄洪时间不再调整

(2)全链路压测会进行集团报备,避开重要促销活动,压测要避开存储(hbase、jimdb、ES)、JDQ、JRC 等自身的灾备演练,以免无效压测

三、大数据憋坝压测期间,业务方的迁移方案

3.1 双流憋坝压测对于业务方的影响

****在大数据双流压测的憋流和憋单期间,憋流和憋单对应的机房(汇天/廊坊)无实时数据下发,泄洪后恢复。不参与压测的业务方,需要做对应的切换。

憋单影响的topic参见: https://joyspace.jd.com/pages/mKHPBOLblsfK58O4c4IL

憋流影响的topic参见: https://joyspace.jd.com/pages/WW5lG8NFeCcmSdp348Qb

3.2 不参与压测的业务方的迁移方案

(1)切换集群:

A、交易不涉及,交易从源头topic都是双流,业务可以切换消费不压测机房对应的topic即可

B、流量直接消费点击流吐出的topic(具体参见:23年618憋流topic整理),需要切换到无损压测集群“JDQ4澜沧江_点击流新建流” 。本次切换集群,支持一键迁移,不用重启任务,要使用这次功能,需要升级jdq-sdk,jdq sdk版本是jdq4-clients:1.3.0-SNAPSHOT flink:1.10/1.12/1.14-1.0.9-SNAPSHOT。如果迁移过程中看不到集群“JDQ4澜沧江_点击流新建流 ,请加群“23年618压测迁移新集群”,群号“1029948724”

C、集群的具体迁移方式参考:23年618流量压测新建流一键切集群的方式

(2)切换topic鉴权

A、交易是双流,廊坊和汇天都有对应的topic,不参与压测的业务方可以申请,消费非压测机房对应的topic即可

B、流量不是消费采集服务直接吐出的topic,例如消费的是流量实时数仓的topic,也是切换消费非压测机房对应的topic即可

C、具体切换方式参考:23年全链路压测汇天/廊坊topic消费者相互切换方法

点赞
收藏
评论区
推荐文章
京东物流常态化压测实践 | 京东云技术团队
大促备战压测备战时间紧、任务多,压测备战压力较大,在大促备战多专项并行资源紧张情况下,频繁的系统调优给整个大促带来不可控的风险因素。引入常态化压测的手段,通过每周或每月的定期压测行为,持续把控系统性能表现,保证服务稳定性;同时将需求上线引起的性能问题前置暴露,及时定位优化问题;减轻备战压力,提升压测效率。
大数据实时链路备战——数据双流高保真压测 | 京东云技术团队
大数据时代,越来越多的业务依赖实时数据用于决策,比如促销调整,点击率预估、广告分佣等。为了保障业务的顺利开展,也为了保证整体大数据链路的高可用性,越来越多的0级系统建设双流,以保证日常及大促期间数据流的稳定性。
竞速榜实时离线对数方案演进介绍 | 京东云技术团队
竞速榜是大促期间各采销群提供的基于京东实时销售数据的排行榜,同样应对大促流量洪峰场景,通过榜单撬动品牌在京东增加资源投入。竞速榜基于用户配置规则进行实时数据计算,榜单排名在大促期间实时变化,相关排名数据在微博、朋友圈广泛传播,相关计算以及排名的准确性至关重要
京东云开发者 京东云开发者
11个月前
大数据平台红蓝对抗 - 磨利刃,淬精兵! | 京东云技术团队
一、背景目前大促备战常见备战工作:专项压测(全链路压测、内部压测)、灾备演练、降级演练、限流、巡检(监控、应用健康度)、混沌演练(红蓝对抗),如下图所示。随着平台业务越来越复杂,红蓝对抗的作用愈来愈明显,下面将详细介绍大数据平台在本次双十一大促备战工作中是
京东云开发者 京东云开发者
9个月前
大数据平台红蓝对抗 - 磨利刃,淬精兵!
背景目前大促备战常见备战工作:专项压测(全链路压测、内部压测)、灾备演练、降级演练、限流、巡检(监控、应用健康度)、混沌演练(红蓝对抗),如下图所示。随着平台业务越来越复杂,红蓝对抗的作用愈来愈明显,下面将详细介绍大数据平台在大促备战工作中是如何开展红蓝对
京东云开发者 京东云开发者
7个月前
对号入座,快看看你的应用系统用了哪些高并发技术?
一系统简介百舸流量运营平台承接着京东金融APP核心资源位和京东APP部分重要资源位,大促单接口QPS达到10w,压测单接口到20w,典型的c端读链路高并发场景。接下来,聊聊我们的系统都有哪些应对高并发的“武功秘籍”。二“武功秘籍”1缓存(redis缓存
京东云开发者 京东云开发者
4个月前
供应链大屏设计实践
概述在物流系统相关的大屏中,供应链大屏复杂度较高,数据链路较长,稳定性要求较高,当前大屏已经经过2年时间的打磨,整体表现已经相对比较成熟稳定。本文描述了物流供应链业务较复杂的业务场景下,结合了大数据计算相关技术,总结了实时监控大屏指标建设和服务构建的框架和
京东云开发者 京东云开发者
4个月前
研发视角浅谈R2流量回放测试
一、背景测试小伙伴们在2023年保障了团队线上系统0问题,这简直就是一项了不起的壮举!这得益于咱们测试组同事对工作的细致投入、风险把控、以及严格遵循流程规范进行测试用例评审、自动化建设、联调推动、回归验证、常态化压测、大促高保真压测、引流回放等多重保险策略
京东云开发者 京东云开发者
3个月前
记一次大库大表的治理过程
一、背景部门中一核心应用,因为各种原因其依赖的MySQL数据库一直处于高水位运行,无论是硬件资源,还是磁盘使用率或者QPS等都处于较高水位,急需在大促前完成对应的治理,降低各项指标,以保障在大促期间平稳运行,以期更好的支撑前端业务。二、基本情况2.1、数据
京东云开发者 京东云开发者
1星期前
揭秘JDQ限流架构:实时数据链路的多维动态带宽管控
作者:京东零售饶璐1、背景在数字化转型的浪潮席卷之下,大数据和云计算技术已成为企业创新和发展的关键驱动力。尤其是以京东为代表的电商平台为例,其日常运营中持续生成海量数据,涵盖实时交易记录、点击曝光统计及用户行为轨迹等,这些数据对精准业务决策、深化用户体验优