Sharding-JDBC实现读写分离

一、 读写分离

在这里插入图片描述

1.1 读写分离核心概念

1.1.1 主库

添加、更新以及删除数据操作所使用的数据库,目前仅支持单主库。

1.1.2 从库

查询数据操作所使用的数据库,可支持多从库。

1.1.3 主从同步

将主库的数据异步的同步到从库的操作。由于主从同步的异步性,从库与主库的数据会短时间内不一致。

1.1.4 负载均衡策略

通过负载均衡策略将查询请求疏导至不同从库。

1.1.5 Config Map

配置读写分离数据源的元数据,可通过调用ConfigMapContext.getInstance()获取ConfigMap中的masterSlaveConfig数据。例:如果机器权重不同则流量可能不同,可通过ConfigMap配置机器权重元数据。

1.2 核心功能

提供了一主多从的读写分离配置,可独立使用,也可配合分库分表使用
同一线程且同一数据库连接内,如有写入操作,以后的读操作均从主库读取,用于保证数据一致性。
Spring命名空间
基于Hint的强制主库路由。

1.3 不支持范围

主库和从库的数据同步。
主库和从库的数据同步延迟导致的数据不一致。
主库双写或多写。

二、 读写分离实践

前提,在数据库层面配置好主从库

2.1 配置主从库数据源

在这里插入图片描述

2.2 配置主从节点读写分离

当然,这里也需要指定主键及生成算法
在这里插入图片描述

#主从配置、读写分离
spring.shardingsphere.sharding.master-slave-rules.ds0.master-data-source-name=m
spring.shardingsphere.sharding.master-slave-rules.ds0.slave-data-source-names=s

spring.shardingsphere.sharding.tables.student.actual-data-nodes=ds0.student
spring.shardingsphere.sharding.tables.student.key-generator.column=sid
spring.shardingsphere.sharding.tables.student.key-generator.type=SNOWFLAKE


这次的内容到这里就结束了,作者水平有限,文章不足之处敬请指出

Best Regards

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值