多数据源切换、读写分离-02

这篇具有很好参考价值的文章主要介绍了多数据源切换、读写分离-02。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用dynamic进行数据源切换、读写分离
特性
1、支持数据源分组 ,适用于多种场景纯粹多库读写分离一主多从混合模式。
2、支持数据库敏感配置信息 加密 ENC()。
3、支持每个数据库独立初始化表结构schema和数据库database。
4、支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。
5、支持自定义注解 ,需继承DS(3.2.0+)。
6、提供并简化对Druid,HikariCp,BeeCp,Dbcp2的快速集成。
7、提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。
7、提供 自定义数据源来源方案(如全从数据库加载)。
8、提供项目启动后 动态增加移除数据源方案。
9、提供Mybatis环境下的纯读写分离方案。
10、提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。
11、支持多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。
12、提供基于seata的分布式事务方案。 附:不支持原生spring事务。
13、提供本地多数据源事务方案。 附:不支持原生spring事务。
 
1、引入dynamic-datasource-spring-boot-starter。
  <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
        <version>3.5.0</version>
  </dependency>

2、配置数据源。

spring:
  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      datasource:
        master:
          url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic
          username: root
          password: 123456
        slave:
          url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic
          username: root
          password: 123456
3、在实现类上使用 @DS 切换数据源。

多数据源切换、读写分离-02,分布式框架,java,mybatis,开发语言

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public int createUser(User user){
        SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String creation_date = dateFormat.format(System.currentTimeMillis());
        user.setCreation_date(creation_date);
        return userMapper.addUser(user);
    }

    @Override
    public int updateUser(int id, User user){
        user.setUserid(id);
        return userMapper.updateUser(user);
    }

    @Override
    public int deleteUser(int id){
        return userMapper.deleteUser(id);
    }

    @Override
    @DS("slave")
    public User queryUserById(int id){
        return userMapper.queryUserById(id);
    }

    @Override
    @DS("slave")
    public List<User> queryUserList(int pageNow, int pageSize){
        int pageNum = (pageNow-1)*pageSize;
        return userMapper.queryUserList(pageNum,pageSize);
    }
}
 

注:多数据源同步的问题还是要交给mysql进行。dynamic不能进行数据同步文章来源地址https://www.toymoban.com/news/detail-574998.html

到了这里,关于多数据源切换、读写分离-02的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SpringBoot应用篇】SpringBoot集成atomikos实现多数据源配置和分布式事务管理

    讨论分布式事务之前我们分清两个概念: 本地事务 、 分布式事务 ; 本地事务是解决 单个数据源 上的数据操作的 一致性 问题的话,而分布式事务则是为了解决 跨越多个数据源 上数据操作的 一致性 问题。 百度官方对分布式事务的定义是指事务的参与者、支持事务的服务

    2024年02月16日
    浏览(40)
  • Springboot+mybatis-plus+dynamic-datasource+Druid 多数据源 分布式事务

    背景 处理多数据源事务一直是一个复杂而棘手的问题,通常我们有两种主流的解决方法。 第一种是通过Atomikos手动创建多数据源事务,这种方法更适合数据源数量较少,参数配置不复杂,对性能要求不高的项目。然而,这种方法的最大困难在于需要手动配置大量设置,这可能

    2024年02月11日
    浏览(29)
  • springboot整合多数据源的配置以及动态切换数据源,注解切换数据源

    在许多应用程序中,可能需要使用多个数据库或数据源来处理不同的业务需求。Spring Boot提供了简便的方式来配置和使用多数据源,使开发人员能够轻松处理多个数据库连接。如果你的项目中可能需要随时切换数据源的话,那我这篇文章可能能帮助到你 ℹ️:这里对于pom文件

    2024年02月10日
    浏览(42)
  • SpringBoot——动态数据源(多数据源自动切换)

    日常的业务开发项目中只会配置一套数据源,如果需要获取其他系统的数据往往是通过调用接口, 或者是通过第三方工具比如kettle将数据同步到自己的数据库中进行访问。 但是也会有需要在项目中引用多数据源的场景。比如如下场景: 自研数据迁移系统,至少需要新、老两

    2024年02月16日
    浏览(31)
  • PySpark 读写Hive数据源

    一、环境配置 本文在Windows下配置Spark访问Hive。如需在Linux上配置,请对应Linux上同样的目录即可。 检查PySpark环境正常运行;检查Hive环境正常运行;启动Hive元数据服务 hive –service metastore 先将%HIVE_HOME%confhive-site.xml拷贝到%SPARK_HOME%conf。此步骤是为了Spark能读取Hive相应的配置

    2024年04月16日
    浏览(31)
  • SpringBoot从数据库读取数据数据源配置信息,动态切换数据源

            首先准备多个数据库,主库smiling-datasource,其它库test1、test2、test3         接下来,我们在主库smiling-datasource中,创建表databasesource,用于存储多数据源相关信息。表结构设计如下         创建好表之后,向表databasesource中存储test1、test2、test3三个数据库的相关配置

    2024年01月16日
    浏览(51)
  • SpringBoot动态切换数据源

      Spring提供一个DataSource实现类用于动态切换数据源—— AbstractRoutingDataSource pom.xml 大概的项目结构 注意:这两个事务管理器,并不能处理分布式事务 链接:https://pan.baidu.com/s/1ymxeKYkI-cx7b5nTQX0KWQ  提取码:6bii  --来自百度网盘超级会员V4的分享                

    2024年02月06日
    浏览(39)
  • springboot,多数据源切换

    需求介绍:         要求做一个平台,有其他第三方系统接入;每个系统有自己的数据源配置,通过调用平台接口,实现将数据保存到第三方自己的数据库中; 实现过程:         1.在平台项目运行时,通过接口获取每个第三方系统的数据源;以key-value的形式保存到全局

    2024年02月16日
    浏览(30)
  • 若依分离版——配置多数据源(mysql和oracle),实现一个方法操作多个数据源

    目录 一、若依平台配置           二、编写oracle数据库访问的各类文件  三.  一个方法操作多个数据源 一、若依平台配置 1、在ruoyi-admin的pom.xml添加oracle依赖 2、引入ojdbc6.jar包 在ruoyi-admin的resource下创建lib文件夹,将ojdbc6.jar包保存在此目录下 3.  刷新maven 刷新maven保证ruo

    2024年02月05日
    浏览(32)
  • 若依前后端分离版配置多数据源

    1、application.yml里面配置数据源 2、在common模块的enums目录下的DataSourceType增加数据枚举类型 3、在framework模块下的config目录下修改DruidConfig,照着自带的从库写法 4、然后用@DataSource注解来切换数据源,可以写在类上,也可以写在方法里面,还可以写覆盖mp的方法,来实现某个s

    2024年01月19日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包