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

news/2024/10/22 14:41:21

作者:京东零售 京东零售

一、大数据双流建设

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消费者相互切换方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74641.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Lightroom和Photoshop在图片编辑中有什么区别

Lightroom和Photoshop在图片编辑中的区别:1.应用场景不同;2.功能特性差异;3.工作流程差异;4.调整方式的不同;5.文件格式支持和输出差异。本文深入比较了Adobe Lightroom和Photoshop这两款常用的图片编辑软件。从应用场景、功能特性、工作流程等多个方面探讨它们的区别,帮…

快到2025年了,OCP的认证考试费用会降价吗?

从事数据库工作的都知道,OCP证书是非常受欢迎的一个认证,是从事数据库管理员的首选证书之一,所以想考OCP证书的也非常多,关于OCP考试的费用问题,也一直是大家关注的焦点。其实,考OCP证书总的费用是根据Oracle官方的考试价格再加上培训机构的培训费用、培训记录、教材费用…

HDFS 重要机制之 checkpoint

核心概念 hdfs checkpoint 机制对于 namenode 元数据的保护至关重要, 是否正常完成检查点是评估 hdfs 集群健康度和风险的重要指标editslog : 对 hdfs 操作的事务记录,类似于 wal ,edit log文件以 edits_ 开头,后面跟一个txid范围段,并且多个edit log之间首尾相连,正在使用…

怎么申请电子邮箱

申请电子邮箱的步骤:1.确定用户类型,选择典型代表;2.设定申请目标,明确申请流程;3.选择申请方式,确定申请渠道;4.安排申请流程,按步骤进行;5.研究用户需求,满足期望。电子邮箱申请的第一步是确定用户类型。1.确定用户类型,选择典型代表电子邮箱申请的第一步是确定用…

医疗健康行业获客难?来看这位区域总经理的业绩增长破局之道

在医疗健康行业摸爬滚打多年的老张是一家知名医疗器械公司的区域总经理。 医疗健康行业的客户生态复杂多样,主要分为终端医院与渠道两大核心板块。对于终端医院,老张采取的是稳健而深入的列名经营策略,通过持续不断的学术交流、积极参与行业展会以及国家、省市等各级别的招投…

Taro 鸿蒙技术内幕系列(一):如何将 React 代码跑在 ArkUI 上

作者:京东零售 朱鸣辉基于 Taro 打造的京东鸿蒙 APP 已跟随鸿蒙 Next 系统公测,本系列文章将深入解析 Taro 如何实现使用 React 开发高性能鸿蒙应用的技术内幕 背景 随着鸿蒙操作系统的快速发展,开发者们期待将现有跨平台应用迁移到鸿蒙平台。Taro作为一个流行的跨平台开发框…

设置弹性域缺省值

如何设置辅助属性默认值,并在单据上直接带出默认值?

在网络图中什么是ES、EF、LS、LF、TF、FF

在项目管理中的网络图中,ES(Early Start)、EF(Early Finish)、LS(Late Start)、LF(Late Finish)、TF(Total Float)和FF(Free Float)是关键路径方法(Critical Path Method,CPM)中用于描述活动和事件时间的重要概念。1. 在网络图中ES、EF、LS、LF、TF、FF的基本介…