拉取官网 Docker 镜像
docker pull apache/sharding-proxy
手动构建 Docker 镜像(可选)
git clone https://github.com/apache/shardingsphere
mvn clean install
cd sharding-sphere/sharding-distribution/sharding-proxy-distribution
mvn clean package -Prelease,docker
配置 Sharding-Proxy
在 /${your_work_dir}/conf/ 创立 server.yaml 和 config-xxx.yaml 文件,进行服务器和分片规定配置。
配置规定,请参考配置手册。
配置模板,请参考配置模板
运行 Docker
docker run -d -v /${your_work_dir}/conf:/opt/sharding-proxy/conf -e PORT=3308 -p13308:3308 apache/sharding-proxy:latest
阐明
- 能够自定义端口
3308
和13308
。3308
示意 docker 容器端口,13308
示意宿主机端口。 - 必须挂载配置门路到 /opt/sharding-proxy/conf。
docker run -d -v /${your_work_dir}/conf:/opt/sharding-proxy/conf -e JVM_OPTS="-Djava.awt.headless=true" -e PORT=3308 -p13308:3308 apache/sharding-proxy:latest
阐明
- 能够自定义 JVM 相干参数到环境变量
JVM_OPTS
中。
docker run -d -v /${your_work_dir}/conf:/opt/sharding-proxy/conf -v /${your_work_dir}/ext-lib:/opt/sharding-proxy/ext-lib -p13308:3308 apache/sharding-proxy:latest
阐明
- 如需应用内部 jar 包,可将其所在目录挂载到 /opt/sharding-proxy/ext-lib。
拜访 Sharding-Proxy
与连贯 PostgreSQL 的形式雷同。
psql -U ${your_user_name} -h ${your_host} -p 13308
FAQ
问题 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 的 ShardingProxy?
答复:将 mysql-connector.jar
所在目录挂载到 /opt/sharding-proxy/ext-lib。
问题 4:如何应用自定义分片算法?
答复:实现对应的分片算法接口,将编译出的分片算法 jar 所在目录挂载到 /opt/sharding-proxy/ext-lib。