zoukankan      html  css  js  c++  java
  • springboot整合shading_jdbc实现读写分离

    之前是通过XML方式来配置数据源,读写分离策略,分库分表策略等,之前有朋友也问过我,有没有Spring Boot的方式来配置,既然已经用Spring Boot还用XML来配置感觉有点不协调。

    其实吧我个人觉得只要能用,方便看,看的懂就行了,mybatis的SQL不也是写在XML中嘛。

    今天就给大家介绍下Spring Boot方式的使用,主要讲解读写分离的配置,其余的后面再介绍。

    所谓的Spring Boot方式就是直接可以通过属性文件或者YAML文件来配置上面我们提到的那些信息。

    主要还是用shardingjdbc提供的starter,配置如下:

    <dependency>
        <groupId>io.shardingjdbc</groupId>
        <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
        <version>2.0.0.M3</version>
    </dependency>

    配置如下

    server.port=8084
    
    mybatis.config-location=classpath:META-INF/mybatis-config.xml
    
    sharding.jdbc.datasource.names=ds_master,ds_slave
    
    # 主数据源
    sharding.jdbc.datasource.ds_master.type=com.alibaba.druid.pool.DruidDataSource
    sharding.jdbc.datasource.ds_master.driver-class-name=com.mysql.jdbc.Driver
    sharding.jdbc.datasource.ds_master.url=jdbc:mysql://localhost:3306/ds_0?characterEncoding=utf-8
    sharding.jdbc.datasource.ds_master.username=root
    sharding.jdbc.datasource.ds_master.password=123456
    
    # 从数据源
    sharding.jdbc.datasource.ds_slave.type=com.alibaba.druid.pool.DruidDataSource
    sharding.jdbc.datasource.ds_slave.driver-class-name=com.mysql.jdbc.Driver
    sharding.jdbc.datasource.ds_slave.url=jdbc:mysql://localhost:3306/ds_1?characterEncoding=utf-8
    sharding.jdbc.datasource.ds_slave.username=root
    sharding.jdbc.datasource.ds_slave.password=123456
    
    # 读写分离配置
    sharding.jdbc.config.masterslave.load-balance-algorithm-type=round_robin
    sharding.jdbc.config.masterslave.name=dataSource
    sharding.jdbc.config.masterslave.master-data-source-name=ds_master
    sharding.jdbc.config.masterslave.slave-data-source-names=ds_slave

    sharding.jdbc.config.masterslave.load-balance-algorithm-type
    查询时的负载均衡算法,目前有2种算法,round_robin(轮询)和random(随机),算法接口是io.shardingjdbc.core.api.algorithm.masterslave.MasterSlaveLoadBalanceAlgorithm。实现类有RandomMasterSlaveLoadBalanceAlgorithm和RoundRobinMasterSlaveLoadBalanceAlgorithm。

    sharding.jdbc.config.masterslave.master-data-source-name
    主数据源名称

    sharding.jdbc.config.masterslave.slave-data-source-names
    从数据源名称,多个用逗号隔开
    就是这么简单,整个流程结束,下面就是写代码测试读写分离的效果了,我这边用的mybatis,
    注意,这里采用的是同一个mysql,并没有实现数据的同步,只是简单实现了数据的读写分离,如果要想实现主从同步,那么还需要去搭建mysql数据库的主从同步

  • 相关阅读:
    收藏的一个Sqlserver性能查询,包括查询CPU 网络等
    转载自博客园的一篇文章 通过SQL Server Profiler来监视分析死锁
    关于Sqlserver的换行和空格
    Sql Server查询性能优化之不可小觑的书签查找
    临时表和表变量,转载自博客园
    Sqlserver活动视图
    代码列表 4.5:显示累计最消耗 CPU 时间的前50个运行计划
    关于Sqlserver2012分页的新功能尝试
    sqlserver 东八时区的英文时间转换
    Flash应用效率优化启示录Ⅰ
  • 原文地址:https://www.cnblogs.com/xiufengchen/p/10407347.html
Copyright © 2011-2022 走看看