15 | 流量隔离:MySQL数据库隔离是怎么做的?
高楼
你好,我是高楼。
这节课,我们详细讲讲怎样基于微服务技术进行 MySQL 数据库隔离的落地。
对线上压测来说,最重要的环节就是流量隔离了,而这其中最核心的又是数据库隔离,只有识别并隔离正式流量与压测流量才能避免产生脏数据。
为什么要做数据库隔离?
为什么做数据库隔离呢?我给你举个例子。记得几年前,我当时所在的公司做线上压测。当时团队并没有做数据库隔离,而是直接在线上生产库进行压测,导致产生了很多脏数据。结果花费了很长时间去清理数据,但最终也没有完全清理干净,它不仅污染了生产数据还对线上业务产生了不好的影响,影响了用户体验。所以说做线上压测,数据库隔离是必须做的一个环节。
当然了,如果你的公司不差钱,也可以直接隔离出一套线下 1:1 镜像环境做压测。但是大部分公司并没有这么“土豪”,还得使用目前的生产坏境做压测,那么数据库隔离技术就必不可少了。
首先,我梳理了一下目前业界对于数据库隔离的主要解决方案,以及它们的优缺点和适用场景。
我们可以看到,根据不同的项目情况,可以选择不同的技术方案,这里最优、最安全的方案当然首推影子库,具体的优缺点上面表格已经写得非常清楚了。
其实,上面这三种数据库隔离技术现在都已经很成熟了,要做到并不太难。但是出于各方面的原因,我们在网上很少看到过完整的技术解决方案,而有些公司把它们视作“独门秘方”,所以数据库隔离还远远谈不上普及。不过随着市场的发展,数据库隔离的面纱迟早会缓缓揭开。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了基于微服务技术的 MySQL 数据库隔离实现方法。作者首先强调了数据库隔离的重要性,并介绍了业界主要的解决方案,包括分库分表、影子表和影子库。在选择影子库作为数据库隔离技术后,文章详细介绍了影子库技术的预演、数据源配置、流量标记生成以及数据源切换等实现过程。通过具体的代码和配置案例,结合 AOP 切面编程、TransmittableThreadLocal 的使用以及数据源切换技术预演,为需要进行数据库隔离的开发人员提供了有价值的参考。文章最后强调了技术预演的有效性,并提出了思考题,引导读者深入思考数据库隔离在全链路压测中的核心作用以及其他可能的实现方式。整体而言,本文以实际案例为基础,详细介绍了数据库隔离的实现过程,为读者提供了深入了解和应用该技术的指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《全链路压测实战 30 讲》,新⼈⾸单¥59
《全链路压测实战 30 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- Geek_e5142c影子表也可以做数据隔离 1,mybatis 拦截器 Interceptor ,解析sql ,把表都改成带前缀的影子表( 我没实践过😄)
作者回复: 写写试试。
2022-04-08 - Geek_e5142c1. 为什么说数据库隔离是全链路压测中改造的核心环节? 因为数据库一般是数据的最终落脚点 2. AbstractRoutingDataSource +DataSourceAspect 这种方式遇到事务就不行了,需要重写事务管理器DataSourceTransactionManager 这里
作者回复: 看来是认真学习了。
2022-04-08 - 冒冒高老师,能来一些分布式系统的分析案例么
作者回复: 我们用的就是分布式系统哇。 所有这里面用的技术都是在分布式的基础上的。
2021-12-15 - 黑山老妖讲的非常好,实例代码在哪里可以获得。
作者回复: 环境搭建那篇是有的。方案那篇也是有的。
2021-12-14
收起评论