全链路压测实战 30 讲
高楼
盾山科技 CEO,7DGroup 创始人
21053 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 38 讲
全链路压测实战 30 讲
15
15
1.0x
00:00/00:00
登录|注册

17 | 流量隔离:MongoDB 数据库隔离是怎么做的?

你好,我是高楼。
这节课,我们详细来讲讲如何基于微服务技术落地 MongoDB 数据库隔离。

快速了解 MongoDB

MongoDB 是目前比较主流的一款 NoSQL 文档数据库,它能够解决关系数据库中的 Schema 问题,其特点是 No-Schema,任意存储和读取任意数据。
MongoDB 的数据格式主要是 JSON/BSON,因为用它新增字段简单,历史数据容错性强,比较容易存储复杂数据,所以很多电商系统都会用它,我们这个开源电商项目里面的会员服务(mall-member)也用到了它。
目前 SpringBoot 对 MongoDB 使用的支持,主要通过 Spring Data MongoDB 模块,有以下两种方式:
MongoTemplate
MongoRepository
既然 Template 和 Repository 都可以做增删查改操作,它们俩的区别和优劣势在哪里呢?
到目前为止,Repository 比 Template 方便得多,但是后者可以提供对执行内容更细粒度的控制。可以说,“方便”和 “功能强大”在某种程度上是相互矛盾的目标。
Template 能做各式各样的操作,比较灵活,但是什么都得自己写。而 Repository 做了很好的封装,Repository 的实现和 JPA 类似,SQL 是动态生成出来的,对应关系是在实体类上定义的,用起来也比较方便,但是对于更复杂的查询操作,最后还是得靠 Template 来实现。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了基于微服务技术落地 MongoDB 数据库隔离的方法。首先介绍了 MongoDB 的特点和在 SpringBoot 中使用 MongoDB 的方式,包括 MongoTemplate 和 MongoRepository 的区别。然后重点讲解了在 SpringBoot 中落地数据隔离方案的需求和技术预演。文章提到了选择影子库作为 MongoDB 数据库隔离方案,并列举了改造需求,包括服务获取压测请求的标记、MongoDB 支持多数据源、动态切换数据源以及对业务代码的侵入性尽可能少。接着通过一个 demo 工程进行了技术预演,包括集成 MongoDB、实现获取压测标记等步骤。通过全局 Filter 过滤器和数据上下文的实现,展示了如何在业务中获取压测标记。整体来说,本文内容涵盖了 MongoDB 数据库隔离的技术细节和实际落地方案,对于想要深入了解 MongoDB 数据库隔离的读者具有很高的参考价值。文章通过实例演示了如何实现多数据源、全局 Filter 获取标记并存入数据上下文、通过 AOP 拦截请求并判断压测标记、选择对应 Factory以及操作对应的 MongoDB。文章内容丰富,对于想要在真实系统落地 MongoDB 数据库隔离的读者具有很高的实践指导意义。文章还介绍了如何通过自定义 Starter 实现影子库功能,并在真实项目中引入该 Starter。最后,通过接口测试验证了影子库功能是否达到预期。整体而言,本文内容丰富,技术深入,对于想要了解 MongoDB 数据库隔离技术的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《全链路压测实战 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部