美文网首页
30. 读写分离

30. 读写分离

作者: 星野君 | 来源:发表于2022-05-15 14:52 被阅读0次

一、Mysql主从复制

  • 主库
  1. 修改mysql数据库的配置文件/etc/my.cnf
[mysqld]
log-bin=mysql-bin #启动二进制日志
server-10=100 #服务器唯一id
  1. 重启mysql服务
systemctl restart mysqld
  1. 登录mysql数据库执行下面sql
grant repliaction slave on *.* 'user'@'%' identified by '123456';

注:sql作用是创建一个user用户,密码是123456,并且给他repliaction slave的权限,用于建立复制时需要的权限。

  1. 执行sql,记录下结果中file和position的值
show master status
  • 从库
  1. 修改mysql数据库的配置文件/etc/my.cnf
[mysqld]
server-10=101 #服务器唯一id
  1. 重启mysql服务
systemctl restart mysqld
  1. 登录mysql数据库执行下面sql
change master to master_host='192.168.xxx.xxx',master_user='user',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=439;
start slave;

注:master_log_file是主库查询show master status时的file,master_log_pos是Position

二、使用Sharding-JDBC读写分离

  1. 导入坐标
<dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <version>4.1.1</version>
</dependency>
  1. 在配置文件中配置读写分离规则,在配置文件中配置允许bean定义覆盖配置项
server:
  port: 8080
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.138.100:3306/rw?characterEncoding=utf-8
        username: root
        password: root
      # 从数据源
      slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.138.101:3306/rw?characterEncoding=utf-8
        username: root
        password: root
    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
  main:
    allow-bean-definition-overriding: true

相关文章

网友评论

      本文标题:30. 读写分离

      本文链接:https://www.haomeiwen.com/subject/agtburtx.html