删除有关SHARDING的内容

This commit is contained in:
Dftre 2024-05-21 06:39:10 +08:00
parent e328ba61e0
commit 509e771862
7 changed files with 0 additions and 146 deletions

View File

@ -19,7 +19,6 @@
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<spring-boot.version>3.2.5</spring-boot.version>
<druid.version>1.2.21</druid.version>
<shardingsphere.version>4.1.1</shardingsphere.version>
<dynamic.version>3.5.2</dynamic.version>
<transactions.version>6.0.0</transactions.version>
<jta.version>1.1</jta.version>
@ -112,13 +111,6 @@
<version>${druid.version}</version>
</dependency>
<!-- sharding-jdbc分库分表 -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>${shardingsphere.version}</version>
</dependency>
<!-- 动态数据源 -->
<dependency>
<groupId>com.baomidou</groupId>

View File

@ -16,19 +16,6 @@ spring:
url:
username:
password:
sharding:
# 分库分表开关/默认关闭
enabled: false
ruoyi1:
enabled: false
url:
username:
password:
ruoyi2:
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5

View File

@ -15,9 +15,4 @@ public enum DataSourceType {
* 从库
*/
SLAVE,
/**
* 分库分表
*/
SHARDING
}

View File

@ -34,12 +34,6 @@
<artifactId>druid-spring-boot-3-starter</artifactId>
</dependency>
<!-- sharding-jdbc分库分表 -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-core</artifactId>
</dependency>
<!-- atomikos分布式事务 -->
<dependency>
<groupId>com.atomikos</groupId>

View File

@ -106,7 +106,6 @@ public class DruidConfig {
Map<Object, Object> targetDataSources = new HashMap<>();
targetDataSources.put(MASTER, masterDataSource);
setDataSource(targetDataSources, SLAVE, "slaveDataSource");
setDataSource(targetDataSources, DataSourceType.SHARDING.name(), "shardingDataSource");
return new DynamicDataSource(masterDataSource, targetDataSources);
}

View File

@ -1,110 +0,0 @@
package com.ruoyi.framework.config;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.shardingsphere.api.config.sharding.KeyGeneratorConfiguration;
import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;
import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;
import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStrategyConfiguration;
import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceBuilder;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.framework.config.properties.DruidProperties;
/**
* sharding 配置信息
*
* @author ruoyi
*/
@Configuration
@ConditionalOnProperty(prefix = "spring.datasource.druid.sharding", name = "enabled", havingValue = "true")
public class ShardingDataSourceConfig {
Logger logger = LoggerFactory.getLogger(ShardingDataSourceConfig.class);
@Bean
@ConfigurationProperties("spring.datasource.druid.sharding.ruoyi1")
@ConditionalOnProperty(prefix = "spring.datasource.druid.sharding.ruoyi1", name = "enabled", havingValue = "true")
public DataSource ruoyi1DataSource(DruidProperties druidProperties) {
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return druidProperties.dataSource(dataSource);
}
@Bean
@ConfigurationProperties("spring.datasource.druid.sharding.ruoyi2")
@ConditionalOnProperty(prefix = "spring.datasource.druid.sharding.ruoyi2", name = "enabled", havingValue = "true")
public DataSource ruoyi2DataSource(DruidProperties druidProperties) {
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return druidProperties.dataSource(dataSource);
}
/**
* 设置数据源
*
* @param targetDataSources 备选数据源集合
* @param sourceName 数据源名称
* @param beanName bean名称
*/
public void setDataSource(Map<String, DataSource> targetDataSources, String sourceName, String beanName) {
try {
DataSource dataSource = SpringUtils.getBean(beanName);
targetDataSources.put(sourceName, dataSource);
} catch (Exception e) {
logger.error("Failed to register a sharding data source:{}", beanName);
}
}
@Bean(name = "shardingDataSource")
public DataSource shardingDataSource() throws SQLException {
Map<String, DataSource> dataSourceMap = new HashMap<>();
// 添加数据源
setDataSource(dataSourceMap, "ruoyi1", "ruoyi1DataSource");
setDataSource(dataSourceMap, "ruoyi2", "ruoyi2DataSource");
// 配置分片规则
ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration();
// 表规则配置 示例:
// 添加order1.sys_order_0,order2.sys_order_0,order1.sys_order_1,order2.sys_order_1
TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration(
"sys_user", "ruoyi$->{1..2}.sys_user_$->{0..1}");
// 配置分库策略
// 示例: 根据user_id分库,user_id为单数去order1库,偶数去order2库
orderTableRuleConfig.setDatabaseShardingStrategyConfig(
new InlineShardingStrategyConfiguration("user_id", "ruoyi$->{user_id % 2 + 1}"));
// 配置分表策略
// 示例: 根据sex分表,sex为偶数分到sys_order_0表,奇数分到sys_order_1表
orderTableRuleConfig.setTableShardingStrategyConfig(
new InlineShardingStrategyConfiguration("sex", "sys_user_$->{sex % 2}"));
// 分布式主键
orderTableRuleConfig.setKeyGeneratorConfig(new KeyGeneratorConfiguration("SNOWFLAKE", "user_id"));
shardingRuleConfig.getTableRuleConfigs().add(orderTableRuleConfig);
// 获取数据源对象
DataSource dataSource = ShardingDataSourceFactory.createDataSource(dataSourceMap, shardingRuleConfig,
getProperties());
return dataSource;
}
/**
* 系统参数配置
*/
private Properties getProperties() {
Properties shardingProperties = new Properties();
shardingProperties.put("sql.show", true);
return shardingProperties;
}
}

View File

@ -4,16 +4,13 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.DataSourceType;
/**
* 用户表 数据层
*
* @author ruoyi
*/
@DataSource(DataSourceType.SHARDING)
public interface SysUserMapper
{
/**