ShardingProxy搭建
ShardingProxy下载
这里使用的是ShardingProxy4.1.0
ShardingProxy下载有多种方式,可以选择官网也可以选择镜像
## 下载
wget https://mirror-hk.koddos.net/apache/shardingsphere/4.1.0/apache-shardingsphere-4.1.0-sharding-proxy-bin.tar.gz
## 解压
tar -zxvf apache-shardingsphere-4.1.0-sharding-proxy-bin.tar.gz -C /
## 软链接
ln -s /apache-shardingsphere-4.1.0-sharding-proxy-bin/ /shardingproxy
将mysql jdbc驱动包放入/shardingproxy/lib下。ShardingProxy默认只附带了PostgreSQL的JDBC驱动包,而不包含MySQL的JDBC驱动包。
然后,我们需要到conf目录下,修改server.yaml,将配置文件中的authentication和props两段配置的注释打开。
修改conf目录下的config-sharding.yaml,这个配置文件就是shardingProxy关于分库分表部分的配置。整个配置和之前我们使用ShardingJDBC时的配置大致相同
启动即可,这时就可以像连接其他MySQL服务一样连接ShardingProxy
ShardingProxy的服务治理
server.yaml配置文件中的orchestration属性表示将ShardingProxy注册到Zookeeper当中,然后启动其他的shardingProxy就可以直接去zookepper里面去拿配置了,而不用再去手动写配置。
Shardingproxy的影子库
影子库就是对当前库进行一个备份,有数据写入主库中,影子库也会被写入,通常会用做线上压测,保证线上数据不被影响。影子库通常会配置成跟生产环境在同一个库,这样就可以在生产环境上直接进行压力测试。
conf/config-shadow.yaml中shadowRule有配置影子库的示例
ShardingProxy的SPI扩展
在ShardingJdbc可以对各种SPI机制进行扩展,那么ShardingProxy是否也可以呢。其实也是可以的
我们只需将之前写的SPI扩展打成jar包,放到shardingprocy下的lib目录下,就会自动加载到Proxy中,实现SPI扩展点的扩展。