1. 同步桥梁

img

之所以使用 shardingsphere proxy 主要是便于编程,全量同步工具相当于连接了两个数据库,只需要从旧数据库查询出数据,然后插入到新的数据库(逻辑库)。

因此,shardingsphere proxy 是作为数据传输的桥梁,屏蔽了分库分表的规则,简化了编程模型。

2. 快速启动

ShardingSphere-Proxy 的启动方式有三种:二进制包、Docker 和 Helm,可以选择单机部署集群部署

本文将介绍如何通过单机二进制包方式启动 ShardingSphere-Proxy 版本号:v 5.5.0 。

2.1 下载

访问 **下载页面**,获取 ShardingSphere-Proxy 二进制安装包, 解压缩的文件目录如下:

img

2.2 将Mysql的jdbc驱动复制到ext-lib目录

下载驱动 mysql-connector-java-5.1.49.jar 或者 mysql-connector-java-8.0.11.jar 放入 lib 包。

img

2.3 进入conf目录,内容如下图:

img

2.4 模式配置global.yaml

因为默认文件内容被注释掉了,所以去掉注释,如下图:

img

2.5 验证启动proxy模式

在 Linux 操作系统上,运行 bin/start.sh;在 Windows 操作系统上,运行 bin/start.bat,以启动 ShardingSphere-Proxy。

img

然后使用 MySQL 终端命令连接 ShardingSphere-Proxy 服务端:

1
2
3
4
# 将 {xx} 替换为实际参数
mysql -h {ip} -u {username} -p{password} -P 3307
# 示例命令
mysql -h 127.0.0.1 -u root -proot -P 3307

img

3. 配置订单分片策略

现在我们需要展示新的订单库(4个分片),需要修改分片策略 。

ShardingSphere-Proxy 支持配置多个逻辑数据源,每个以 database- 前缀命名的 YAML 配置文件,即为一个逻辑数据源。

img

因为我们是自定义分片算法,shardingsphere 内置算法并不满足,所以我们必须先编写自定义算法类。

img

1、 实现 ShardingAlgorithm 接口定义的算法实现类 HashSlotAlgorithm ;

2、在项目 resources 目录下创建 META-INF/services 目录 ;

3、在 META-INF/services 目录下新建文件 org.apache.shardingsphere.sharding.spi.ShardingAlgorithm ;

4、 将实现类的全限定类名写入至文件 org.apache.shardingsphere.sharding.spi.ShardingAlgorithm ;

5、将上述 Java 文件打包成 jar 包, 将上述 jar 包拷贝至 ext-lib 目录;

img

6、配置分片文件 database-myorder.yaml , 该文件用来定义订单的 4 个分片的路由策略;

img

最后,我们启动 Proxy 服务 , 我们发现通过 MySQL Client 查询数据库时,出现了我们配置的订单库 : myorder ,以及订单库里的三个逻辑表 。如下图:

img

4. Navicat连接shardingsphere proxy

通过 shardingjdbc5-spring 模块,插入多条记录到 4 个分片里,可以通过 navicat 连接 proxy 查看效果:

img

然后我们模拟在 myorder 逻辑数据库中新增一条订单记录,执行成功并且查询页正常的情况下,发现分片 ds0 中存储了刚插入的那条数据。

img

至此,使用 proxy 进行分片的流程顺序完成。


本站由 卡卡龙 使用 Stellar 1.27.0 主题创建

本站访问量 次. 本文阅读量 次.