Mysql 读写分离-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
接上文 Mysql 分布式序列算法

1.读写分离

在这里插入图片描述
数据库变为主从状态删除当前的表

drop table test;

然后将从库开启只读模式在mysql配置中进行修改

read-only = 1

这样从库就只能读数据了但root账号还是可以写数据接着重启服务器

sudo systemctl restart mysql.service

然后进入主库 查看状态

show master status

重新配置主从关系

change replication source to SOURCE_HOST='8.130.172.119',SOURCE_USER='test',SOURCE_PASSWORD='12345678',SOURCE_LOG_FILE='binlog.000002',SOURCE_LOG_POS=819;

然后主库创建表

create table test  (
  `id` bigint primary key,
  `name` varchar(255) NULL,
  `passwd` varchar(255) NULL
);

然后配置ShardingJDBC

spring:
  shardingsphere:
    rules:
    	#配置读写分离
      readwrite-splitting:
        data-sources:
        	#名称随便写
          user-db:
          	#使用静态类型动态Dynamic类型可以自动发现auto-aware-data-source-name这里不演示
            type: Static
            props:
            	#配置写库只能一个
              write-data-source-name: db0
              #配置从库多个逗号隔开
              read-data-source-names: db1
              #负载均衡策略可以自定义
              load-balancer-name: my-load
        load-balancers:
        	#自定义的负载均衡策略
          my-load:
            type: ROUND_ROBIN

在这里插入图片描述
然后将上文的雪花算法去掉即修改mapper为原来的带id的插入方式
然后进行测试

    @Test
    void contextLoads() {
        mapper.addUser(new User(10, "aaa", "bbb"));
        System.out.println(mapper.getUserById(10));
    }
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysql