Springboot实现多数据源整合的两种方式,java堆与栈的区别面试

本文介绍了SpringBoot如何结合MyBatis和MyBatis-Plus实现多数据源整合,包括主数据库和副数据库的配置,并详细讲解了整合过程中可能遇到的问题及其解决方案。同时,文章提到了Java堆与栈的区别,适合面试复习。
摘要由CSDN通过智能技术生成
  • 如果文章对你有帮助,可以帮忙一键三连和专栏订阅哦! 技术圈子经过这段时间的筹划,已经初步成型!有兴趣、志同道合的小伙伴可以查看左边导航栏的技术圈子介绍,期待你们的加入!

  • 本篇文章重点介绍SpringBoot集合MyBatis和MyBatis-Plus整合多数据源方面的知识!

🚅 二、专栏推荐

=========

良心推荐: 下面的相关技术专栏还在免费分享哦,大家可以帮忙点点订阅哦!

JAVA进阶知识大全

算法日记修行

🚔 三、整合多数据源需要了解的知识

==================

1、何时会使用到多数据源

一个技术的出现、应用必然是为了解决存在的某些问题,多数据源出现常见的场景如下:

(1)、与第三方对接时,有些合作方并不会为了你的某些需求而给你开发一个功能,他们可以提供给你一个可以访问数据源的只读账号,你需要获取什么数据由你自己进行逻辑处理,这时候就避免不了需要进行多数据源整合了。

(2)、业务数据达到了一个量级,使用单一数据库存储达到了一个瓶颈,需要进行分库分表等操作进行数据管理,在操作数据时,不可避免的涉及到多数据源问题。

2、多数据源整合有哪些方式

参考了网上的许多材料,发现整合方式无外乎以下几种:

(1)、使用分包方式,不同的数据源配置不同的MapperScan和mapper文件

(2)、使用APO切片方式,实现动态数据源切换(如果对Aop不是很熟悉,欢迎查看我之前的一篇文章,这知识保熟哦!【什么是面向切面编程?】)

(3)、使用数据库代理中间件,如Mycat等

3、不同方式之间的区别

(1)、分包方式可以集合JTA(JAVA Transactional API)实现分布式事务,但是整个流程的实现相对来说比较复杂。

(2)、AOP动态配置数据源方式缺点在于无法实现全局分布式事务,所以如果只是对接第三方数据源,不涉及到需要保证分布式事务的话,是可以作为一种选择。

(3)、使用数据库代理中间件方式是现在比较流行的一种方式,很多大厂也是使用这种方式,开发者不需要关注太多与业务无关的问题,把它们都交给数据库代理中间件去处理,大量的通用的数据聚合,事务,数据源切换都由中间件来处理,中间件的性能与处理能力将直接决定应用的读写性能,比较常见的有Mycat、TDDL等。现在阿里出了100%自研的分布式数据库OceanBase,从最底层支持分布式,性能也非常强大,大家感兴趣的可以去了解下!<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值