数据分片 + 读写分离
一. 配置模板
1. 配置(数据分片 + 读写分离)模板
schemaName: sharding_master_slave_dbdataSources: ds0: url: jdbc:mysql://localhost:3306/ds0 username: root password: autoCommit: true connectionTimeout: 30000 idleTimeout: 60000 maxLifetime: 1800000 maximumPoolSize: 65 ds0_slave0: url: jdbc:mysql://localhost:3306/ds0_slave0 username: root password: autoCommit: true connectionTimeout: 30000 idleTimeout: 60000 maxLifetime: 1800000 maximumPoolSize: 65 ds0_slave1: url: jdbc:mysql://localhost:3306/ds0_slave1 username: root password: autoCommit: true connectionTimeout: 30000 idleTimeout: 60000 maxLifetime: 1800000 maximumPoolSize: 65 ds1: url: jdbc:mysql://localhost:3306/ds1 username: root password: autoCommit: true connectionTimeout: 30000 idleTimeout: 60000 maxLifetime: 1800000 maximumPoolSize: 65 ds1_slave0: url: jdbc:mysql://localhost:3306/ds1_slave0 username: root password: autoCommit: true connectionTimeout: 30000 idleTimeout: 60000 maxLifetime: 1800000 maximumPoolSize: 65 ds1_slave1: url: jdbc:mysql://localhost:3306/ds1_slave1 username: root password: autoCommit: true connectionTimeout: 30000 idleTimeout: 60000 maxLifetime: 1800000 maximumPoolSize: 65shardingRule: tables: t_order: actualDataNodes: ms_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: ms_ds${0..1}.t_order_item${0..1} tableStrategy: inline: shardingColumn: order_id algorithmExpression: t_order_item${order_id % 2} bindingTables: - t_order,t_order_item broadcastTables: - t_config defaultDataSourceName: ds0 defaultDatabaseStrategy: inline: shardingColumn: user_id algorithmExpression: ms_ds${user_id % 2} defaultTableStrategy: none: defaultKeyGeneratorClassName: io.shardingsphere.core.keygen.DefaultKeyGenerator masterSlaveRules: ms_ds0: masterDataSourceName: ds0 slaveDataSourceNames: - ds0_slave0 - ds0_slave1 loadBalanceAlgorithmType: ROUND_ROBIN configMap: master-slave-key0: master-slave-value0 ms_ds1: masterDataSourceName: ds1 slaveDataSourceNames: - ds1_slave0 - ds1_slave1 loadBalanceAlgorithmType: ROUND_ROBIN configMap: master-slave-key1: master-slave-value1
2. 配套 SQL