总体介绍
- Oinone的读写分离方案是基于Sharding-JDBC的整合方案,要先具备一些Sharding-JDBC的知识。
[Sharding-JDBC] - 读写分离依赖于主从复制来同步数据,从库复制数据后,才能通过读写分离策略将读请求分发到从库,实现读写操作的分流,请根据业务需求自行实现主从配置。
配置读写策略
- 配置 top_demo 模块走读写分离的逻辑数据源 pamirsSharding。
- 配置数据源。
- 为 pamirsSharding 配置数据源以及 sharding 规则。
指定需要被sharding-jdbc接管的模块
指定top_demo模块给 Sharding-JDBC 接管,接管逻辑数据源名为 pamirsSharding
pamirs:
framework:
data:
ds-map:
base: base
top_demo: pamirsSharding
配置数据源
pamirs:
datasource:
pamirsMaster:
driverClassName: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://127.0.0.1:3306/61_pamirs_mydemo_master?useSSL=false&allowPublicKeyRetrieval=true&useServerPrepStmts=true&cachePrepStmts=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true
username: root
password: ma123456
initialSize: 5
maxActive: 200
minIdle: 5
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
asyncInit: true
pamirsSlaver: # 从库数据源配置
driverClassName: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://127.0.0.1:3306/61_pamirs_mydemo_slaver?useSSL=false&allowPublicKeyRetrieval=true&useServerPrepStmts=true&cachePrepStmts=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true
username: root
password: ma123456
initialSize: 5
maxActive: 200
minIdle: 5
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
asyncInit: true
配置读写数据源及规则
pamirs:
sharding:
define:
data-sources:
pamirsSharding: pamirsMaster # 为逻辑数据源pamirsSharding指向主数据源pamirsMaster。
models:
"[trigger.PamirsSchedule]":
tables: 0..13
rule:
pamirsSharding:
actual-ds: # 指定逻辑数据源pamirsSharding代理的数据源为pamirsMaster、pamirsSlaver
- pamirsMaster
- pamirsSlaver
# 以下配置跟sharding-jdbc配置一致
replicaQueryRules:
- data-sources:
pamirsSharding:
primaryDataSourceName: pamirsMaster # 写库数据源
replicaDataSourceNames:
- pamirsSlaver # 读库数据源
loadBalancerName: round_robin
load-balancers:
round_robin:
type: ROUND_ROBIN # 读写规则
Oinone社区 作者:yexiu原创文章,如若转载,请注明出处:https://doc.oinone.top/dai-ma-shi-jian/21174.html
访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验