From 8e07f8e7fd73c4ec2280da7386e97b758a92f7aa Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 2 Jan 2025 22:09:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sqx/config/ShardingConfig.java | 44 ++--- src/main/resources/application-dev.yml | 146 +++++++++++++- src/main/resources/application-local.yml | 184 ------------------ 3 files changed, 154 insertions(+), 220 deletions(-) delete mode 100644 src/main/resources/application-local.yml diff --git a/src/main/java/com/sqx/config/ShardingConfig.java b/src/main/java/com/sqx/config/ShardingConfig.java index e4736525..7f142a70 100644 --- a/src/main/java/com/sqx/config/ShardingConfig.java +++ b/src/main/java/com/sqx/config/ShardingConfig.java @@ -131,35 +131,23 @@ public class ShardingConfig { String.format(centerTablesDataNode, centerTable)); sets.add(tableRuleConfig); } - if ("prod".equals(activeProfile)) { - // 定义区域表的分库规则 - InlineShardingStrategyConfiguration databaseShardingStrategyConfig = new InlineShardingStrategyConfiguration( - regionTablesShardingDatabaseColumn, regionTablesShardingDatabaseAlgorithm); - for (String regionTable : regionTables) { - TableRuleConfiguration tableRuleConfig = new TableRuleConfiguration(regionTable, String.format(regionTablesDataNode, regionTable)); - tableRuleConfig.setDatabaseShardingStrategyConfig(databaseShardingStrategyConfig); - sets.add(tableRuleConfig); - } - // 定义区域表的分库规则 - InlineShardingStrategyConfiguration courseDetailsShardingStrategyConfig = new InlineShardingStrategyConfiguration( - courseDetailsShardingDatabaseColumn, courseDetailsShardingDatabaseAlgorithm); - for (String regionTable : courseDetails) { - TableRuleConfiguration tableRuleConfig = new TableRuleConfiguration(regionTable, String.format(regionTablesDataNode, regionTable)); - tableRuleConfig.setDatabaseShardingStrategyConfig(courseDetailsShardingStrategyConfig); - sets.add(tableRuleConfig); - } - }else { - for (String centerTable : regionTables) { - TableRuleConfiguration tableRuleConfig = new TableRuleConfiguration(centerTable, - String.format(centerTablesDataNode, centerTable)); - sets.add(tableRuleConfig); - } - for (String centerTable : courseDetails) { - TableRuleConfiguration tableRuleConfig = new TableRuleConfiguration(centerTable, - String.format(centerTablesDataNode, centerTable)); - sets.add(tableRuleConfig); - } + // 定义区域表的分库规则 + InlineShardingStrategyConfiguration databaseShardingStrategyConfig = new InlineShardingStrategyConfiguration( + regionTablesShardingDatabaseColumn, regionTablesShardingDatabaseAlgorithm); + for (String regionTable : regionTables) { + TableRuleConfiguration tableRuleConfig = new TableRuleConfiguration(regionTable, String.format(regionTablesDataNode, regionTable)); + tableRuleConfig.setDatabaseShardingStrategyConfig(databaseShardingStrategyConfig); + sets.add(tableRuleConfig); + } + + // 定义区域表的分库规则 + InlineShardingStrategyConfiguration courseDetailsShardingStrategyConfig = new InlineShardingStrategyConfiguration( + courseDetailsShardingDatabaseColumn, courseDetailsShardingDatabaseAlgorithm); + for (String regionTable : courseDetails) { + TableRuleConfiguration tableRuleConfig = new TableRuleConfiguration(regionTable, String.format(regionTablesDataNode, regionTable)); + tableRuleConfig.setDatabaseShardingStrategyConfig(courseDetailsShardingStrategyConfig); + sets.add(tableRuleConfig); } return sets; } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 20850d41..6b938cb4 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -22,13 +22,22 @@ spring: # sharding-jdbc 配置 shardingsphere: # 显示sharding-jdbc改写的sql语句 - show-sql: false + show-sql: true center-tables-data-node: duanju.%s + # 区域表的数据源节点 + region-tables-data-node: duanju-$->{0..4}.%s + # 区域分库策略的计算字段 + region-tables-sharding-database-column: user_id + # 分库的计算方法 + region-tables-sharding-database-algorithm: duanju-$->{user_id % 5} + + # 短剧集表 拆分 + course_details-sharding-database-column: course_id + course_details-sharding-database-algorithm: duanju-$->{course_id % 5} # 数据源名称 datasource: - # 数据源配置begin - master-0: + duanju: driver-class-name: ${driver-class-name} jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT username: video_user @@ -38,7 +47,59 @@ spring: idle-timeout: ${idle-timeout} max-lifetime: ${max-lifetime} connection-timeout: ${connection-timeout} - slave-0: + # 数据源配置begin + duanju-0: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-0?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: video_user + password: VideoUser@1 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} + duanju-1: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: video_user + password: VideoUser@1 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} + duanju-2: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-2?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: video_user + password: VideoUser@1 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} + duanju-3: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-3?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: video_user + password: VideoUser@1 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} + duanju-4: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-4?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: video_user + password: VideoUser@1 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} + + duanju-slave: driver-class-name: ${driver-class-name} jdbc-url: jdbc:mysql://47.122.26.160:3306/duanju?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT username: root @@ -48,13 +109,82 @@ spring: idle-timeout: ${idle-timeout} max-lifetime: ${max-lifetime} connection-timeout: ${connection-timeout} + duanju-slave-0: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://47.122.26.160:3306/duanju-0?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: root + password: 0fd6497c308ccfa8 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} + duanju-slave-1: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://47.122.26.160:3306/duanju-1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: root + password: 0fd6497c308ccfa8 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} + duanju-slave-2: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://47.122.26.160:3306/duanju-2?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: root + password: 0fd6497c308ccfa8 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} + duanju-slave-3: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://47.122.26.160:3306/duanju-3?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: root + password: 0fd6497c308ccfa8 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} + duanju-slave-4: + driver-class-name: ${driver-class-name} + jdbc-url: jdbc:mysql://47.122.26.160:3306/duanju-4?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT + username: root + password: 0fd6497c308ccfa8 + minimum-idle: ${minimum-idle} + maximum-pool-size: ${maximum-pool-size} + idle-timeout: ${idle-timeout} + max-lifetime: ${max-lifetime} + connection-timeout: ${connection-timeout} # 数据源配置end # 读写分离配置begin master-slave-rules: #数据源 duanju: - master-data-source-name: master-0 - slave-data-source-names: slave-0 -# - master-0 -# - slave-0 + masterDataSourceName: duanju + slaveDataSourceNames: + - duanju-slave + duanju-0: + masterDataSourceName: duanju-0 + slaveDataSourceNames: + - duanju-slave-0 + duanju-1: + masterDataSourceName: duanju-1 + slaveDataSourceNames: + - duanju-slave-1 + duanju-2: + masterDataSourceName: duanju-2 + slaveDataSourceNames: + - duanju-slave-2 + duanju-3: + masterDataSourceName: duanju-3 + slaveDataSourceNames: + - duanju-slave-3 + duanju-4: + masterDataSourceName: duanju-4 + slaveDataSourceNames: + - duanju-slave-4 diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml deleted file mode 100644 index 95687182..00000000 --- a/src/main/resources/application-local.yml +++ /dev/null @@ -1,184 +0,0 @@ -swagger: - enabled: false -pay: - h5BaseUrl: https://dj-h5.hnsiyao.cn/me/detail/detail?allId= - orderNotifyUrl: https://pay.hnsiyao.cn/czg/app/wuyou/notify - extractNotifyUrl: https://pay.hnsiyao.cn/czg/app/wuyou/extractNotify - -# 数据源的一些配置 -driver-class-name: com.mysql.cj.jdbc.Driver -# 最小空闲连接,默认值10,小于0或大于maximum-pool-size,都会重置为maximum-pool-size -minimum-idle: 5 -# 最大连接数,小于等于0会被重置为默认值10;大于零小于1会被重置为minimum-idle的值 -maximum-pool-size: 15 -# 空闲连接超时时间,默认值600000(10分钟),大于等于max-lifetime且max-lifetime>0,会被重置为0;不等于0且小于10秒,会被重置为10秒。 -idle-timeout: 30000 -# 连接最大存活时间.不等于0且小于30秒,会被重置为默认值30分钟.设置应该比mysql设置的超时时间短 -max-lifetime: 30000 -# 连接超时时间:毫秒,小于250毫秒,否则被重置为默认值30秒 -connection-timeout: 30000 - -spring: - # sharding-jdbc 配置 - shardingsphere: - center-tables-data-node: duanju.%s - # 区域表的数据源节点 - region-tables-data-node: duanju-$->{0..4}.%s - # 区域分库策略的计算字段 - region-tables-sharding-database-column: user_id - # 分库的计算方法 - region-tables-sharding-database-algorithm: duanju-$->{Math.abs(user_id) % 5} - - # 短剧集表 拆分 - course_details-sharding-database-column: course_id - course_details-sharding-database-algorithm: duanju-$->{Math.abs(course_id) % 5} - - # 显示sharding-jdbc改写的sql语句 - show-sql: false - # 数据源名称 - datasource: - master: - driver-class-name: ${driver-class-name} - jdbc-url: jdbc:mysql://rm-gc7xx913734hv5w5q.mysql.cn-chengdu.rds.aliyuncs.com/duanju?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT - username: video_user - password: VideoUser@1 - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - # 数据源配置begin - master-0: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - master-1: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - master-2: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - master-3: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - master-4: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - slave: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - slave-0: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - slave-1: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - slave-2: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - slave-3: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - slave-4: - driver-class-name: ${driver-class-name} - jdbc-url: - username: - password: - minimum-idle: ${minimum-idle} - maximum-pool-size: ${maximum-pool-size} - idle-timeout: ${idle-timeout} - max-lifetime: ${max-lifetime} - connection-timeout: ${connection-timeout} - # 数据源配置end - - # 读写分离配置begin - master-slave-rules: - #数据源 - duanju: - master-data-source-name: master - slave-data-source-names: slave - duanju-0: - master-data-source-name: master-0 - slave-data-source-names: slave-0 - duanju-1: - master-data-source-name: master-1 - slave-data-source-names: slave-1 - duanju-2: - master-data-source-name: master-2 - slave-data-source-names: slave-2 - duanju-3: - master-data-source-name: master-3 - slave-data-source-names: slave-3 - duanju-4: - master-data-source-name: master-4 - slave-data-source-names: slave-4 -