读写分离_二、Sharding Sphere 读写分离

本文介绍了数据库读写分离的重要性和工作原理,详细讲解了如何配置MySQL的读写分离,包括启动两个MySQL实例并设置主从复制。接着,文章重点讨论了ShardingJDBC如何根据SQL语义实现读写分离,强调了使用ShardingJDBC时两个数据库需保持数据结构一致的必要性。
摘要由CSDN通过智能技术生成

一、读写分离

为了确保数据库产品的稳定性,很多数据库拥有双机热备功能。也就是,第一台数据库服务器,是对外提供增删改查业务的生产服务器;第二台数据库服务器,仅仅接收来自第一台服务器的备份数据(注意,不同数据库产品,第一台数据库服务器,向第二台数据库服务器发送备份数据的方式不同)。当第一台数据库崩溃后,第二台数据库服务器,可以立即上线来代替第一台数据库服务器。

0ea91abfeba0ed060161bfaf3a5cc31b.png

sharding-jdbc分析sql语义,实现路由读写操作到不同的数据库服务器。

由数据库进行数据同步。

二、Mysql配置读写分离

启动两个mysql实例

一个是我本机、一个是我的云服务器。

Master

Master为服务器上节点

vim /etc/my.cnf

dbfe4dc1b7002ba18e1e30c35092413c.png

重启

service mysql restart

创建主从复制账号

172.16.15.25 为windows的slave机器

GRANT REPLICATION SLAVE ON *.* to 'myslave'@'%' identified by 'xxxxx';

刷新权限

flush privileges;
SHOW MASTER STATUS

48175c0813a6963c2f784b3f66cf6b02.png

从服务器

41b648d2a40fe3f36514b1ba7c626e68.png

STOP SLAVECHANGE MASTER TOMASTER_HOST = '49.232.61.212',MASTER_USER =  'myslave',MASTER_PASSWORD = 'xxxxx',MASTER_LOG_FILE = 'mysql-bin.000002',MASTER_LOG_POS = 154;start slave;

设置成功

73a792ddf6adf5fa63da4628980ba337.png

这样就实现了mysql的主从配置,master库负责增删改操作,slave专注于查询,实现了性能与数据安全的提升。

三、shardingJDBC读写分离

shardingJDBC不提供数据同步,我们做的是通过shardingJDBC配置,解析sql语义,实现读写分离。

注意两个数据库需要结构数据一样。(先同步)

配置

# 读写分离# 一个实体类可对应两张表spring.main.allow-bean-definition-overriding=true# sharding 多数据源配置spring.shardingsphere.datasource.names=ds1,ds2# ds1 212Masterspring.shardingsphere.datasource.ds1.type=com.alibaba.druid.pool.DruidDataSourcespring.shardingsphere.datasource.ds1.driver-class-name=com.mysql.cj.jdbc.Driverspring.shardingsphere.datasource.ds1.url=jdbc:mysql://49.232.61.212:3306/sharding_1?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghaispring.shardingsphere.datasource.ds1.username=rootspring.shardingsphere.datasource.ds1.password=xxxxxxxxx# ds2 本地slavespring.shardingsphere.datasource.ds2.type=com.alibaba.druid.pool.DruidDataSourcespring.shardingsphere.datasource.ds2.driver-class-name=com.mysql.cj.jdbc.Driverspring.shardingsphere.datasource.ds2.url=jdbc:mysql://127.0.0.1:3306/sharding_1?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghaispring.shardingsphere.datasource.ds2.username=rootspring.shardingsphere.datasource.ds2.password=gwssi# 主从逻辑  ds为统一的spring.shardingsphere.sharding.master-slave-rules.ds.master-data-source-name=ds1spring.shardingsphere.sharding.master-slave-rules.ds.slave-data-source-names=ds2# 表配置spring.shardingsphere.sharding.tables.user.actual-data-nodes=ds.user_1#  控制台显示sqlspring.shardingsphere.props.sql.show=true

ba972abbf37b7483397f8ae8f8ab3419.png

1fbeb53f0c1da7166d57b85e16f67552.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值