流量回放的数据隔离

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
注册配置 MSE Nacos/ZooKeeper,118元/月
性能测试 PTS,5000VUM额度
简介: 流量回放的数据隔离

流量回放的数据隔离

流量回放的数据处理是决定流量回放的基础,流量回放中的流量都是在之前录制下来的。往往录制下来的流量并不能直接回放,这有两个原因,其一是录制下来的流量很难回放就能成功,很多有状态的数据已经被消费掉了,想要回放成功必须对流量进行处理,才能保证回放能够成功;其二是录制下来的流量往往也会将其放大几倍进行回放,从而达到一定压力测试的目的。那么无论怎么样的回放,数据都不能和真实用户的数据混为一谈,必须有相应的处理技术进行处理,这样既保证流量回放的压力不会影响现有服务的服务能力,也能避免回放数据污染生产数据库,在后续的数仓、数据分析、大数据等的应用产生结果的影响。
流量回放的数据隔离方法有两种一种是逻辑隔离,一种是物理隔离。逻辑隔离是通过数据实体中置入一些流量回放的标记,从而在逻辑上只要有标记的就是回放数据,没有的就是真实流量的数据。物理隔离就是真实数据和流量回放数据放到不同的数据区域,从而到的回放数据和真实数据在物理上就完全的隔离。无论是逻辑隔离还是物理隔离都需要项目的技术改造。

数据隔离的分类

逻辑隔离

逻辑隔离就是在数据上做标记,从而可以区分哪些是流量回放的数据,哪些是那些事真实的数据。这个标记可以是专门的一个数据字段作为标记,假设有一个流量回放的标记type,1是回放数据,0是真实用户数据;也可以通过某些特殊的ID进行标记,例如订单号9开头的都是回放数据,其他的都是真实用户数据等等这样的方法,在数据逻辑上进行区分,数据存储上真实用户的数据和回放的数据都在一起混存。逻辑隔离实现简单,理解容易,对于中间件层无需任何改造,但是对于业务系统是需要代码改造的,是有代码入侵的,对于原来的数据结构,数据表都需要进行更改,因此在设计中必须要谨慎评价标记能力,任何遗漏的标记都会导致原始数据的污染。

物理隔离

物理隔离是将所回放数据写入独立的区域,回放数据和真实用户的数据在不同的物理服务器上完全隔离,要做到物理隔离需要的流量染色、影子库表等的处理。物理隔离的相对投入技术改造成本高,理解起来相对复杂,很多改造细节需要充分论证,需要改造中间件,对于业务代码的入侵较少,如果隔离是为了压测服务的,那么数据的脱敏、偏移也需要充分设计,任何一个细节的都可能导致测试的失败。如果是服务压测的数据隔离,在完成影子库表建设后,需要进行小批量的压力测试,确定影子库表、影子库表上数据是有效的。

数据隔离的技术

流量染色

流量染色也叫做流量打标,常规做法是在自定义头中加入一个流量回放的标记,在HTTP协议中我们会通过自定义头加入流量回放的标记,自定专用消息头可通过X-前缀来添加(但是这种用法被IETF在2012年6月发布的 RFC5548 中明确弃用,原因是其会在非标准字段成为标准时造成不便,但是到今天还有很多团队在应用。)自定义HTTP headers 通常意味着提供一些对 web 开发者有用的附加信息,或者是方便故障排除(troubleshooting)。在HTTP协议中的流量回放的标记就可以通过自定义头来实现,比如我们在HTTP中定义一个头是Test-Flag,流量回放的标记是1,正式用户是0。使用自定义头部的时候, 命名是时候记得要绕开浏览器的标准key-name就好了, 具体的标准名可以参考MDN(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)。

在一个访问需要协议转换的时候,就需要格外小心,要保证染色标记能够传递下去,例如HTTP协议公网转到RPC内网的时候,自定义头Test-Flag要转成RPC的标记,那么具体RPC怎么标记要看对应的RPC的框架。

影子库表

影子库,就是建立一个新的数据库,新的数据库中的表结构和生产数据库一致,在识别流量染色标记的方法常规会封装到组织级的开发框架中,从而可以达到最小的代码改动就完成回放流量的识别。影子库比较建议单独运行在一个数据库实例上,以防止影子库压力过大影响真实用户系统访问性能。影子表和真实库中数据结构完全一致的新数据表,在流量过来的时候,需要按照回放标记进行流量识别,然后判断存入真实表还是影子表。那么这个识别存储数据的过程可以在ORM框架中定制路由逻辑完成,Mybatis可以使用Interceptor拦截器,在SQL语句执行前对路由进行动态修改。
如果是为了全链路压测而做的影子库、影子表,需要包装影子库表中的数据规模和生产真实数据规模一致,然后将生产库或者生产表的部分相关数据脱敏、偏移后存入影子库,也可以按照手工生成一部分数据,但是一定要保证回放的流量的依赖数据都是经过脱敏、偏移处理的而不是手工生成的。

MQ和Redis

消息中间件MQ最关键的就是需要将回放标记能存入消息队列中,然后还能读取出来具体就写一层意义,那么MQ是否需要做一个专门为流量回放而做的服务呢?这其实是业务决定的,如果业务上没有完全的业务安全性、监管要求,并且MQ的压力也不大,那么流量回放和真实访问用一个就可以了,例如RobbitMQ就可以setHeader回放标记,和自定义协议头的最好一致,比较建议在定义流量回放标记的时候保持一致,这样比较容易保障处理的方式的统一。如果是创建一个影子的消息中间件,那么就需要在生产者代码逻辑修改可以识别回放标记,消费者就需要有专门消费影子消息中间件的服务。
Redis和MQ类似,没有业务上的要求就可以共用服务,在key上加入一些回放标记,例如加一个前缀或者加一个后缀,进行回放流量和真实流量的识别,这个的识别就是在流量转换的时候,通过逻辑代码完成转换。

日志的隔离

应用服务在对于流量回放的处理过程中的日志最好单独保存,也就是实现日志的隔离,这样既可以保证不会因为回放的大量日志而导致生产中真实用户访问的日志被污染,也能方便通过回放的应用服务日志排查回放中的问题。常规的处理方法就是在业务逻辑写日志部分进行一项区分,有回放标记的流量存入一个日志文件,没有标记的存入另外一个日志文件。

总结

流量回放的数据隔离是回放得以实施的重要部分,如果没有做好数据隔离,回放后对于数据的污染会是一个灾难性的后果。那么除了上面说的隔离方案外,要成功实施流量回放还需要完成一些外部依赖系统的解耦,还有一些内部资格验证的逻辑约束,这是因为有时候流量回放是通过录制后放大的流量进行的回放,因此有些用户、优惠券、活动资格等都是有约束的,这些对于流量回放标记的数据应该有一些豁免权。

目录
相关文章
|
8天前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
|
12天前
|
存储 人工智能 调度
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。
|
3天前
|
并行计算 前端开发 物联网
全网首发!真·从0到1!万字长文带你入门Qwen2.5-Coder——介绍、体验、本地部署及简单微调
2024年11月12日,阿里云通义大模型团队正式开源通义千问代码模型全系列,包括6款Qwen2.5-Coder模型,每个规模包含Base和Instruct两个版本。其中32B尺寸的旗舰代码模型在多项基准评测中取得开源最佳成绩,成为全球最强开源代码模型,多项关键能力超越GPT-4o。Qwen2.5-Coder具备强大、多样和实用等优点,通过持续训练,结合源代码、文本代码混合数据及合成数据,显著提升了代码生成、推理和修复等核心任务的性能。此外,该模型还支持多种编程语言,并在人类偏好对齐方面表现出色。本文为周周的奇妙编程原创,阿里云社区首发,未经同意不得转载。
|
9天前
|
人工智能 运维 双11
2024阿里云双十一云资源购买指南(纯客观,无广)
2024年双十一,阿里云推出多项重磅优惠,特别针对新迁入云的企业和初创公司提供丰厚补贴。其中,36元一年的轻量应用服务器、1.95元/小时的16核60GB A10卡以及1元购域名等产品尤为值得关注。这些产品不仅价格亲民,还提供了丰富的功能和服务,非常适合个人开发者、学生及中小企业快速上手和部署应用。
|
19天前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
3940 3
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
8天前
|
算法 安全 网络安全
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
2024阿里云11.11金秋云创季活动火热进行中,活动月期间(2024年11月01日至11月30日)通过折扣、叠加优惠券等多种方式,阿里云WoSign SSL证书实现优惠价格新低,DV SSL证书220元/年起,助力中小企业轻松实现HTTPS加密,保障数据传输安全。
522 3
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
|
15天前
|
安全 数据建模 网络安全
2024阿里云双11,WoSign SSL证书优惠券使用攻略
2024阿里云“11.11金秋云创季”活动主会场,阿里云用户通过完成个人或企业实名认证,可以领取不同额度的满减优惠券,叠加折扣优惠。用户购买WoSign SSL证书,如何叠加才能更加优惠呢?
992 3
|
7天前
|
数据采集 人工智能 API
Qwen2.5-Coder深夜开源炸场,Prompt编程的时代来了!
通义千问团队开源「强大」、「多样」、「实用」的 Qwen2.5-Coder 全系列,致力于持续推动 Open Code LLMs 的发展。
|
12天前
|
机器学习/深度学习 存储 人工智能
白话文讲解大模型| Attention is all you need
本文档旨在详细阐述当前主流的大模型技术架构如Transformer架构。我们将从技术概述、架构介绍到具体模型实现等多个角度进行讲解。通过本文档,我们期望为读者提供一个全面的理解,帮助大家掌握大模型的工作原理,增强与客户沟通的技术基础。本文档适合对大模型感兴趣的人员阅读。
445 18
白话文讲解大模型| Attention is all you need
|
13天前
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
663 10
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎