docker pull apache/shardingsphere-proxy
git clone https://github.com/apache/shardingsphere
mvn clean install
cd shardingsphere-distribution/shardingsphere-proxy-distribution
mvn clean package -Prelease,docker
在 /${your_work_dir}/conf/
创建 server.yaml
和 config-xxx.yaml
文件,进行服务器和分片规则配置。
配置规则,请参考配置手册。
配置模板,请参考配置模板
docker run -d -v /${your_work_dir}/conf:/opt/shardingsphere-proxy/conf -e PORT=3308 -p13308:3308 apache/shardingsphere-proxy:latest
说明
3308
和 13308
。3308
表示 docker 容器端口, 13308
表示宿主机端口。/opt/shardingsphere-proxy/conf
。docker run -d -v /${your_work_dir}/conf:/opt/shardingsphere-proxy/conf -e JVM_OPTS="-Djava.awt.headless=true" -e PORT=3308 -p13308:3308 apache/shardingsphere-proxy:latest
说明
JVM_OPTS
中。docker run -d -v /${your_work_dir}/conf:/opt/shardingsphere-proxy/conf -v /${your_work_dir}/ext-lib:/opt/shardingsphere-proxy/ext-lib -p13308:3308 apache/shardingsphere-proxy:latest
说明
/opt/shardingsphere-proxy/ext-lib
。与连接 PostgreSQL 的方式相同。
psql -U ${your_username} -h ${your_host} -p 13308
问题1:I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Connection refused?
回答:在构建镜像前,请确保 docker daemon 进程已经运行。
问题2:启动时报无法连接到数据库错误?
回答:请确保 /${your_work_dir}/conf/config-xxx.yaml
配置文件中指定的 PostgreSQL 数据库的 IP 可以被 Docker 容器内部访问到。
问题3:如何使用后端数据库为 MySQL/openGauss 的 ShardingSphere-Proxy?
回答:将 mysql-connector.jar
或 opengauss-jdbc.jar
所在目录挂载到 /opt/shardingsphere-proxy/ext-lib
。
问题4:如何使用自定义分片算法?
回答:实现对应的分片算法接口,将编译出的分片算法 jar 所在目录挂载到 /opt/shardingsphere-proxy/ext-lib
。