Sharding-Proxy
1. 介绍
Sharding-Proxy是ShardingSphere的第二个产品,定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client,MySQL Workbench等操作数据,对DBA更加友好。
- 向应用程序完全透明,可直接当做MySQL使用
- 适用于任何兼容MySQL协议的客户端
Sharding-Proxy的优势在于对异构语言的支持,以及为DBA提供可操作入口。
Sharding-Proxy使用过程:
-
下载Sharding-Proxy的最新发行版;
-
解压缩后修改
conf/server.yaml
和以config-
前缀开头的文件,进行分片规则、读写分离规则配置编辑
%SHARDING_PROXY_HOME%\conf\config-xxx.yaml
,编辑
%SHARDING_PROXY_HOME%\conf\server.yaml
-
引入依赖jar 如果后端连接MySQL数据库,需要下载MySQL驱动,解压缩后将mysql-connector-java-5.1.48.jar拷贝到
${sharding-proxy}\lib
目录。如果后端连接PostgreSQL数据库,不需要引入额外依赖。 -
Linux操作系统请运行
bin/start.sh
,Windows操作系统请运行bin/start.bat
启动Sharding-Proxy。使用默认配置启动:${sharding-proxy}\bin\start.sh
配置端口启动:${sharding-proxy}\bin\start.sh${port}
-
使用客户端工具连接。如:
mysql -h127.0.0.1 -P3307 -uroot -proot
若想使用Sharding-Proxy的数据库治理功能,则需要使用注册中心实现实例熔断和从库禁用功能。 Sharding-Proxy默认提供了Zookeeper的注册中心解决方案。只需按照配置规则进行注册中心的配置,即可使用。
注意事项
- Sharding-Proxy默认不支持hint,如需支持,请在conf/server.yaml中,将props的属性proxy.hint.enabled设置为true。在Sharding-Proxy中,HintShardingAlgorithm的泛型只能是String类型。
- Sharding-Proxy默认使用3307端口,可以通过启动脚本追加参数作为启动端口号。如:bin/start.sh3308
- Sharding-Proxy使用conf/server.yaml配置注册中心、认证信息以及公用属性。Sharding-Proxy支持多逻辑数据源,每个以"config-“做前缀命名yaml配置文件,即为一个逻辑数据源。
2. 分库实战
-
下载sharding-proxy压缩包
-
按照上面步骤配置conf目录下的配置文件, 按模板配置即可
-
原理类似于我们之前使用过的mysql-proxy, 其实就是1个代理, 封装了分库分表逻辑,在客户端使用就像使用1个库一样
这里我们就不再做详细的演示
3. Springboot +sharding-proxy
相当于把sharding-proxy代理数据库看作是一个库, springboot连接使用即可, 没啥特别的地方