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、项目代码简介

相关推荐
mini小新14 分钟前
PostgreSQL如何进行跨服务器迁移数据
服务器·数据库·postgresql·数据迁移
学不动CV了26 分钟前
深入理解C语言内存空间、函数指针(三)(重点是函数指针)
c语言·arm开发·数据库·stm32·单片机·嵌入式硬件·c#
武子康33 分钟前
Java-70 深入浅出 RPC Dubbo 详细介绍 上手指南
java·分布式·网络协议·spring·rpc·dubbo·nio
沧澜sincerely7 小时前
Raft 代码分析
分布式·共识算法·raft协议
我重来不说话9 小时前
xFile:高性能虚拟分布式加密存储系统——Go
分布式·压缩存储·权限系统·动态加密·虚拟存储
Another Iso10 小时前
CentOs 7 MySql8.0.23之前的版本主从复制
linux·mysql·centos
2401_8315017310 小时前
Linux之Zabbix分布式监控篇(一)
分布式·zabbix
gorgor在码农11 小时前
分布式ID方案
分布式
若兰幽竹12 小时前
【从零开始编写数据库:基于Python语言实现数据库ToyDB的ACID特性】
数据库·python
宇钶宇夕12 小时前
S7-200 SMART CPU 密码清除全指南:从已知密码到忘记密码的解决方法
运维·服务器·数据库·程序人生·自动化