当前位置: 代码迷 >> 综合 >> sharding-jdbc 配置读写分离
  详细解决方案

sharding-jdbc 配置读写分离

热度:75   发布时间:2024-01-12 17:30:25.0

逻辑图:

在这里插入图片描述

1、引入依赖

		<dependency><groupId>io.shardingjdbc</groupId><artifactId>sharding-jdbc-core</artifactId><version>2.0.3</version></dependency>

2、配置mybatis-plus&多数据源

MyCat:重,
sharding-jdbc:增强版的数据库驱动。轻量级

1、配置整合mybatis-plus
@MapperScan("com.atguigu.gmall.ums.mapper")
2、数据源暂时不用配置,我们用sharding-jdbc
3、配置sharding-jdbc管理多数据源,创建sharding-jdbc.yml
dataSources:db_master: !!com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.217.130:3307/gmall_pms?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: rootpassword: rootdb_slave: !!com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.217.130:3316/gmall_pms?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: rootpassword: root
masterSlaveRule:name: db_msmasterDataSourceName: db_masterslaveDataSourceNames: [db_slave]###注意,这份文档直接从官网复制的。!!后面是DataSource的实现类全类名不能省略。
###多个slave加多份db_slaveXX配置即可,在slaveDataSourceNames列举这些slaver[db_slave,db_slave2]
4、配置数据源
@Configuration
public class GmallShardingJdbcConfig {
    @Beanpublic DataSource dataSource() throws IOException, SQLException {
    //使用sharding-jdbc创建出具有主从库的数据源DataSource dataSource = MasterSlaveDataSourceFactory.createDataSource(ResourceUtils.getFile("classpath:sharding.yml"));return  dataSource;}
}

3、测试sharding-jdbc读写分离

分别停止主库和从库,查看是否可以进行读写;
强制路由到主库

HintManager hintManager = HintManager.getInstance();
hintManager.setMasterRouteOnly();

或者稍微测一下 能保存数据并且两个库都有 说明保存到了主库上 主库同步到了从库
然后在数据库改一下从库的数据 如果查到的数据是从库改的数据 说明查询是在从库差的

4、更多sharding-jdbc

http://shardingjdbc.io/
什么是sharding-jdbc?
https://juejin.im/entry/5905ac37a22b9d0065e1199c

  相关解决方案