大数据实时链路备战 —— 数据双流高保真压测 | 京东云技术团队

一、大数据双流建设

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即可。

作者:京东零售 荆明岚

来源:京东云开发者社区

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

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

相关文章

Leetcode-每日一题【剑指 Offer 66. 构建乘积数组】

题目 给定一个数组 A[0,1,…,n-1]&#xff0c;请构建一个数组 B[0,1,…,n-1]&#xff0c;其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]A[0]A[1]…A[i-1]A[i1]…A[n-1]。不能使用除法。 示例: 输入: [1,2,3,4,5]输出: [120,60,40,30,24] 提示&#xff1a; 所…

UVM重点归纳(快收藏 !)

factory机制 利用工厂机制的一般实现步骤&#xff1a; 1.继承 范式&#xff1a; class comp_type/obj_type extends uvm_component/uvm_object; 实例&#xff1a; class comp1/obj1 extends uvm_component/uvm_object; 2.注册 范式&#xff1a; uvm_component/object_utils…

组件开发系列--Apache Commons Chain

一、前言 Commons-chain是apache commons中的一个子项目,主要被使用在"责任链"的场景中,struts中action的调用过程,就是使用了"chain"框架做支撑.如果你的项目中,也有基于此种场景的需求,可以考虑使用它. 在责任链模式里&#xff0c;很多对象由每一个对象对…

Python中运行取消Python console模式

在Python里run的时候突然会发现&#xff0c;进入的不是run模式&#xff0c;而是console模式&#xff0c;这种运行模式能保留你每次的运行历史&#xff0c;因为会重开一个运行小页面&#xff0c;关闭操作如下&#xff1a;

opencv-18 什么是色彩空间?

1.什么是色彩空间类型&#xff1f; 色彩空间类型&#xff0c;也称为颜色空间类型或色彩模型&#xff0c;是一种表示图像中颜色的方式。在计算机图形学和数字图像处理中&#xff0c;有许多种色彩空间类型&#xff0c;每种类型有不同的表达方式和特点。 常见的色彩空间类型包括&a…

虹科新闻 | 虹科与Berghof正式建立合作伙伴关系

近日&#xff0c;虹科与德国Berghof公司达成战略合作&#xff0c;虹科正式成为Berghof Automation在大中华区的认证授权代理商。未来&#xff0c;虹科将携手Berghof一同为机器制造商、系统集成商和工业设备制造商提供先进的解决方案&#xff0c;从而在最小的空间内实现最高的性…

STM32使用HAL库BH1750光照度传感器

开发环境 单片机&#xff1a;STM32F103C8T6 光照度传感器&#xff1a;BH1750 IDE&#xff1a;KEILSTM32CUBEMX 单片机配置 1、STM32CUBEMX BH1750代码 1、头文件 /* ************************************************* BH1750光照数据计算&#xff08;LUX&#xff09; …

React Flow

// 创建项目 npm create vitelatest my-react-flow-app -- --template react // 安装插件 npm install reactflow // 运行项目 npm run dev 1、App.jsx import { useCallback, useState } from react; import ReactFlow, {addEdge,ReactFlowProvider,MiniMap,Controls,useNode…

50条必背JAVA知识点(二)

16.强制类型转换&#xff1a;将容量大的数据类型转换为容量小的数据类型&#xff0c;但可能造成精度降低或溢出。 17.字符串不能直接转换为基本类型&#xff0c;但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。 18.计算机底层都以二进制补码的方式来存储数据。…

图数据库Neo4j学习三——cypher语法总结

1MATCH 1.1作用 MATCH是Cypher查询语言中用于从图数据库中检索数据的关键字。它的作用是在图中查找满足指定条件的节点和边&#xff0c;并返回这些节点和边的属性信息。 在MATCH语句中&#xff0c;通过节点标签和边类型来限定查找范围&#xff0c;然后通过WHERE语句来筛选符合…

解决VScode下载太慢的问题记录

最近突然想重新下载vscoded便携免安装版&#xff0c;发现下载很慢&#xff0c;于是乎查询一下&#xff0c;以便记录 下载地址 VScode官方网站&#xff1a; https://code.visualstudio.com/ 根据个人的需求选择下载&#xff0c;页面加载下载需要等一会&#xff0c; 然后就会…

kotlin高阶函数

kotlin高阶函数 函数式API:一个函数的入参数为Lambda表达式的函数就是函数式api 例子: public inline fun <T> Iterable<T>.filter(predicate: (T) -> Boolean): List<T> {return filterTo(ArrayList<T>(), predicate) }上面这段函数: 首先这个函…

使用EM算法完成聚类任务

EM算法&#xff08;Expectation-Maximization Algorithm&#xff09;是一种基于迭代优化的聚类算法&#xff0c;用于在无监督的情况下将数据集分成几个不同的组或簇。EM算法是一种迭代算法&#xff0c;包含两个主要步骤&#xff1a;期望步骤&#xff08;E-step&#xff09;和最…

态势标绘专题介绍

介绍 这个专栏是专门针对基于Cesium来实现态势标绘的专题专栏,专栏主要实现了30余种态势几何形状的标绘和编辑、文本的标绘和编辑、图片的标绘和编辑以及简单模型的标绘,同时支持标绘结果的导出以及导入。包括最终编写成的一个完整的Vue3.2+TS+Cesium1.107.2的标绘组件。专栏…

Java JVM虚拟机内部体系结构

JVM(Java虚拟机)是一个抽象机器。 它是一个提供可以执行Java字节码的运行时环境的规范。JVM可用于许多硬件和软件平台(即JVM是平台相关的)。 什么是JVM&#xff1f; JVM(Java虚拟机)是&#xff1a; 指定Java虚拟机的工作的规范。 但实现提供程序是独立的选择算法。 其实现是由…

【Hive实战】Hive的压缩池与锁

文章目录 Hive的压缩池池的分配策略自动分配手动分配隐式分配 池的等待超时Labeled worker pools 标记的工作线程&#xff08;自定义线程池&#xff09;Default pool 默认池Worker allocation 工作线程的分配 锁Turn Off ConcurrencyDebuggingConfigurationhive.support.concur…

如何跳出Java中的多层嵌套循环?

在Java中&#xff0c;要跳出多层嵌套循环&#xff0c;可以使用带有标签的break语句。通过在外层循环前加上一个标签&#xff0c;然后在内层循环中使用break语句后跟标签名称&#xff0c;可以实现跳出多层循环的目的。 以下是使用标签和break语句跳出多层嵌套循环的示例代码&…

BUG:pm2启动verdaccio报错:Invalid or unexpected toke

输入命令&#xff1a; pm2 state verdaccio 问题描述&#xff1a; pm2 logs verdaccio报错翻译&#xff1a;数据格式错误 导致我呢提原因&#xff0c;没有找到运行文件&#xff0c; 发现问题&#xff1a;因为命令默认查找verdaccio是去系统盘查找。 解决方式 1&#xff1a;…

Hadoop_HDFS_常见的文件组织格式与压缩格式

参考资料 1. HDFS中的常用压缩算法及区别_大数据_王知无_InfoQ写作社区 2. orc格式和parquet格式对比-阿里云开发者社区 3.Hadoop 压缩格式 gzip/snappy/lzo/bzip2 比较与总结 | 海牛部落 高品质的 大数据技术社区 4. Hive中的文件存储格式TEXTFILE、SEQUENCEFILE、RCFILE…

【家庭公网IPv6】

家庭公网IPv6 这里有两个网站&#xff1a; 1、 IPV6版、多地Tcping、禁Ping版、tcp协议、tcping、端口延迟测试&#xff0c;在本机搭建好服务器后&#xff0c;可以用这个测试外网是否可以访问本机&#xff1b; 2、 IP查询ipw.cn&#xff0c;这个可以查询本机的网络是否IPv6访问…