ShardingSphere源码分析(一) ShardingJDBC使用


环境准备

这次的分享偏使用, 不探索 ShardingSphere 的代码过程 ( 实际是我还没编译通过… )

主要准备是 MySQL 主从环境, 我这里直接在 windows 上安装 mysql 5.7, 并拷贝了一份当做从库, 链接如下: https://blog.youkuaiyun.com/a345203172/article/details/106911270

更加方便的方式是启动 docker 来做一主多从的环境.


读写分离

在 ShardingSphere-5.0.0-alpha 中我是使用这样一段代码来实现读写分离:

@Bean(name = "dataSource")
public DataSource getDataSource() throws SQLException {
   
    // 创建主从库数据源连接池
    Map<String, DataSource> dataSourceMap = new HashMap<>();
    dataSourceMap.put("master", DataSourceUtil.createDataSource(url_master));
    dataSourceMap.put("slave", DataSourceUtil.createDataSource(url_slave));

    // 创建主从配置信息类
    ReplicaQueryDataSourceRuleConfiguration dataSourceConfig = new ReplicaQueryDataSourceRuleConfiguration(
        "master_slave_datasource", "master",
        Arrays.asList("slave"), null);
    // 创建规则配置类
    ReplicaQueryRuleConfiguration ruleConfig = new ReplicaQueryRuleConfiguration(
        Collections.singleton(dataSourceConfig), Collections.emptyMap());

    // 工厂获得数据源
    return ShardingSphereDataSourceFactory.createDataSource(dataSourceMap, Collections.singleton(ruleConfig), new Properties());
}

这里的核心是 ReplicaQueryRuleConfiguration 类, 可以配置主从的查询规则 (一主N从), 也可以配置从库的负载均衡策略 (我这里的代码是传入空集合, 使用默认的轮训策略).

然而在 5.0.0-beta 版中, 这块的内容是有所变化, 改后的代码如下:

@Bean(name = "dataSource")
public DataSource
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值