先来说说为什么需要做数据隔离,如果不做隔离会有什么风险?答案是数据不隔离会导致数据统计出错,还有对线上业务造成严重的影响。那也有小伙伴会说,数据物理不隔离,业务系统兼容下不就可以了吗?
但其实业务系统兼容压测数据也是一种数据隔离,我们称之为“压测数据逻辑隔离“,IT系统要实现这种逻辑隔离,基本上每一个接口都要针对压测数据进行工作量巨大的兼容改造,并且后续发布新接口或者修改老接口也需要持续兼容改造。
否则一旦某环节出现问题就会对系统造成重大隐患。因此我们在生产环境做压测,一定要做数据隔离,下面是我们数列科技的压测产品大体结构如下图:
Takin的实现思路主要为以下三个步骤:
1. 流量染色
构造压测流量时,将压测标记加入到压测流量中进行流量染色,比如页面发起的http请求,我们会在http请求的消息头里面加入压测标记。
2. 压测标记传递
当压测流量流经业务链路时,会经过很多事先被植入过压测探针的应用。当压测流量经过这些应用时,会被应用里的探针识别出来,并且会携带这些压测标记继续传递下去。比如压测流量经过Dubbo服务时,探针会把压测标记放到Dubbo的上下文中。
3. 压测数据存储
压测流量最终会持久化到数据库、缓存、消息中间件等,当压测探针识别到压测流量要持久化,就会将压测流量持久化到对应的影子区域。比如数据库会持久化到影子库或者影子表中、消息会写到影子topic中。
本文来自投稿,不代表TakinTalks稳定性技术交流平台立场,如若转载,请联系原作者。
评论列表(1条)