MySQL主从复制案例实现

使用Sharding-JDBC实现读写分离:

1、导入maven坐标

2、 在配置文件中配置读写分离规则

3、在配置文件中配置允许bean定义覆盖配置项

1、导入maven坐标

java 复制代码
<dependency>
      <groupId>org.apache.shardingsphere</groupId>
      <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
      <version>4.0.0-RC1</version>
</dependency>

2、配置读写分离规则

java 复制代码
spring:
  shardingsphere:
    datasource:
      names:
        master,slave
      # 主数据源
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.145.111:3306/rw?characterEncoding=utf-8
        username: haimeng
        password: 123456
      # 从数据源
      slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.145.110:3306/rw?characterEncoding=utf-8
        username: haimeng
        password: 123456
    masterslave:
      # 读写分离配置
      load-balance-algorithm-type: round_robin #轮询
      # 最终的数据源名称
      name: dataSource
      # 主库数据源名称
      master-data-source-name: master
      # 从库数据源名称列表,多个逗号分隔
      slave-data-source-names: slave
    props:
      sql:
        show: true #开启SQL显示,默认false

3、允许bean定义覆盖配置项

java 复制代码
  main:
    allow-bean-definition-overriding: true

4、启动测试




可以看到已经实现了读写分离了。

5、项目代码简介

相关推荐
不羁。。3 小时前
【撸靶笔记】第八关:GET - Blind - Boolian Based - Single Quotes
数据库·sql·mybatis
AwhiteV4 小时前
利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
数据库·人工智能·自然语言处理·oracle·大模型·text2sql
m0_595199854 小时前
Redis(以Django为例,含具体操作步骤)
数据库·redis·缓存
爱尚你19934 小时前
MySQL 三大日志:redo log、undo log、binlog 详解
数据库·mysql
小猿姐6 小时前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
艾希逐月6 小时前
分布式唯一 ID 生成方案
分布式
NocoBase7 小时前
10 个开源工具,快速构建数据应用
数据库·低代码·开源
麻辣清汤7 小时前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi
钢铁男儿8 小时前
Python 正则表达式(正则表达式和Python 语言)
python·mysql·正则表达式
Kan先生9 小时前
对象存储解决方案:MinIO 的架构与代码实战
数据库·python