sharding-jdbc配置分析Configuration

Sharding核心配置主要如下(官网):

  • 分片规则

    分片规则配置的总入口。包含数据源配置、表配置、绑定表配置以及读写分离配置等

  • 数据源配置

    真实数据源列表

  • 表配置

    逻辑表名称、数据节点与分表规则的配置

  • 数据节点配置

    用于配置逻辑表与真实表的映射关系。可分为均匀分布和自定义分布两种形式

  • 分片策略配置

    对于分片策略存有数据源分片策略和表分片策略两种维度

    • 数据源分片策略:

      对应于DatabaseShardingStrategy。用于配置数据被分配的目标数据源

    • 表分片策略
      对应于TableShardingStrategy。用于配置数据被分配的目标表,该目标表存在与该数据的目标数据源内。故表分片策略是依赖与数据源分片策略的结果的
  • 自增主键生成策略

    通过在客户端生成自增主键替换以数据库原生自增主键的方式,做到分布式主键无重复。

 

接下来对各个核心配置进行分析:

  1. 以多主多从读写分离、表分片为例
    public final class ShardingMasterSlaveConfigurationPrecise implements ExampleConfiguration {
        
        @Override
        public DataSource getDataSource() throws SQLException {
            ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration();
            //分片表规则配置
            shardingRuleConfig.getTableRuleConfigs().add(getOrderTableRuleConfiguration());
            shardingRuleConfig.getTableRuleConfigs().add(getOrderItemTableRuleConfiguration());
            //绑定分片表,主要用来路由
            shardingRuleConfig.getBindingTableGroups().add("t_order, t_order_item");
            //设置默认数据源分片策略
            shardingRuleConfig.setDefaultDatabaseShardingStrategyConfig(new StandardShardingStrategyConfiguration("user_id", new PreciseModuloShardingDatabaseAlgorithm()));
            //设置默认表分片策略
            shardingRuleConfig.setDefaultTableShardingStrategyConfig(new StandardShardingStrategyConfiguration("order_id", new PreciseModuloShardingTableAlgorithm()));
            //主从配置,支持多主多从
            shardingRuleConfig.setMasterSlaveRuleConfigs(getMasterSlaveRuleConfigurations());
            //创建ShardingDataSource数据源
            return ShardingDataSourceFactory.createDataSource(createDataSourceMap(), shardingRuleConfig, new Properties());
        }
        
        private static TableRuleCo
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值