分库分表利器——sharding-sphere
1 分库分表利器——sharding-sphere
https://www.jianshu.com/p/952108f777a3
2 Sharding-Sphere:Sharding-Proxy分库分表
https://blog.csdn.net/zhuyu19911016520/article/details/90051340
3 Sharding-Proxy的使用
https://www.cnblogs.com/yeyongjian/p/10107078.html
4 利用ShardingSphere(sharding-proxy)实现分库分表,通过整合ZooKeeper,进行简单配置文件修改轻松实现跨库跨表相关操作,轻量级零侵入整合项目开发
https://blog.csdn.net/u014374009/article/details/102418034
* ShardingSphere-用户手册
https://shardingsphere.apache.org/document/current/cn/overview/
https://shardingsphere.apache.org/document/current/cn/manual/sharding-jdbc/configuration/config-spring-namespace/
https://shardingsphere.apache.org/document/current/cn/manual/sharding-jdbc/usage/sharding/
######################################################################################################
#
# Here you can configure the rules for the proxy.
# This example is configuration of master-slave rule.
#
# If you want to use master-slave, please refer to this file;
# if you want to use sharding, please refer to the config-sharding.yaml.
#
######################################################################################################
#分库分表好用
schemaName: master_slave_db
dataSources:
ds_0:
url: jdbc:mysql://10.102.16.36:3306/demo_ds_0?serverTimezone=UTC&useSSL=false
username: root
password: root
autoCommit: true
connectionTimeout: 30000
idleTimeout: 60000
maxLifetime: 1800000
maximumPoolSize: 50
ds_1:
url: jdbc:mysql://10.102.16.36:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
username: root
password: root
autoCommit: true
connectionTimeout: 30000
idleTimeout: 60000
maxLifetime: 1800000
maximumPoolSize: 50
ds0_slave:
url: jdbc:mysql://10.102.16.64:3306/demo_slave_0?serverTimezone=UTC&useSSL=false
username: sa
password: abcd1234
autoCommit: true
connectionTimeout: 30000
idleTimeout: 60000
maxLifetime: 1800000
maximumPoolSize: 50
ds1_slave:
url: jdbc:mysql://10.102.16.64:3306/demo_slave_1?serverTimezone=UTC&useSSL=false
username: sa
password: abcd1234
autoCommit: true
connectionTimeout: 30000
idleTimeout: 60000
maxLifetime: 1800000
maximumPoolSize: 50
shardingRule:
tables:
t_order:
actualDataNodes: ds_${0..1}.t_order_${0..1}
tableStrategy:
inline:
shardingColumn: order_id
algorithmExpression: t_order_${order_id % 2}
keyGeneratorColumnName: order_id
t_order_item:
actualDataNodes: ds_${0..1}.t_order_item_${0..1}
tableStrategy:
inline:
shardingColumn: order_item_id
algorithmExpression: t_order_item_${order_item_id % 2}
keyGeneratorColumnName: order_item_id
bindingTables:
- t_order,t_order_item
defaultDatabaseStrategy:
inline:
shardingColumn: user_id
algorithmExpression: ds_${user_id % 2}
defaultTableStrategy:
none:
defaultKeyGeneratorClassName: io.shardingsphere.core.keygen.DefaultKeyGenerator
#---------------------------读写分离不好用
masterSlaveRule:
name: ds_0
masterDataSourceName: ds_0
slaveDataSourceNames:
- ds0_slave
name: ds_1
masterDataSourceName: ds_1
slaveDataSourceNames:
- ds1_slave
#---------------------------读写分离不好用