ShardingSphere Proxy 5.x 自定义分片策略 实例 Demo

ShardingSphere Proxy 5.x 实现 自定义分片策略

      在ShardingProxy 5.x版本和之前4.x版本的自定义分片策略写法不一样了,4.x的网上还能找到例子,但是5.x的我找了很久 也没有比较详细的例子,花了半天搞了一下 写出来给大家看看 

第一步  官网下载sharding proxy最新版本5.0.0Beta

      下载自己找去哈 直接baidu shardingsphere进去官网下载 里面有 找到5.0的proxy

      修改两个配置文件如下

     1.2. server.yaml

authentication 是虚拟数据库的账号密码 端口是3307(不是3306哈) ws_share是虚拟数据库名称

props 自行配置 

2.config-sharding.yaml

userss是数据库表名称前缀 数据库的真实结构是ws_share1 库和ws_share2 库 每个库中5个表

userss_0 -> userss_4

schemaName 虚拟数据库名称 跟server配置里的一致 

dataSources  数据源 有几个配置几个

rules 唯一的重点就是shardingAlogorithms处 的userss_inline 本来是要写表达式的 但是我们要自定义对吧 可以看到我之前注释的表达式  type修改为自定义的type值(HIM_USER)这个值是自定义的下面会见到  proxy就是根据这个type找到我们写的class

数据库的配置  我没改哈 跟表的一样只需要改下 type值就好了 自定义里我大概写了下

还有一步就是把proxy项目lib中shardingsphere开头的jar包拷贝出来(因为4.0的包里面没有我们需要的类  5.0的包maven库我没找到) 一会自己新建的项目需要用到 可能不需要这么多 但是懒得找了 就都拷贝出来吧

第二步 新建自己的java项目 实现自定义分片

          引入第一步 从proxy拷贝出来的jar包

          新建一个类 实现一下接口StandardShardingAlgorithm

 

第一张图就是精确分片了 记录的插入 还有 精确的查询 比如= 或者 in 都会进入这个方法

这里表我是根据id % 5 分的 库根据id % 2 分的 跟之前的配置联系起来看就明白了

没啥好讲的代码很简单

写完代码还有一步 就是

 在resources 下新建META-INF/services  再在里面新建一个名为org.apache.shardingsphere.sharding.spi.ShardingAlgorithm的文件 文件内容就是自定义类的全限定名我的这个就是 com.NewHimShardingAlgorithm(只需要有这些就够了)

然后打成jar包

第三步 启动查看

       将打好的自定义jar包 放入proxy的lib目录下 启动proxy  然后用Navicat或者啥连接proxy虚拟的数据库  连接信息 你的proxy在哪里启动的ip就是啥(连接信息不是真实的ip哈 是proxy所在的服务器的ip) 端口是3307  账号密码 看server配置文件  

      这里有个问题 navicat的话 连接虚拟数据库 高版本的貌似不行 12.0左右的navicat才可以 高版本的要么打不开 要么看到的库不对

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值