尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Docker部署 ShardingSphere‑Proxy 5.4.1

Docker部署 ShardingSphere‑Proxy 5.4.1 文章目录一、Docker部署 ShardingSphere‑Proxy 5.4.1 极简配置示例1docker run 启动命令2docker‑compose.yml 版本推荐3简单配置1. conf/server.yaml2. conf/config‑sharding.yaml4连接测试5额外开启读写分离极简片段追加到config‑sharding.yaml rules二、ShardingSphere‑Proxy MySQL后端版本支持官方文档标注支持范围生产实际最低建议重要配套JDBC驱动放在ext‑lib关键坑点老版本补充小结一、Docker部署 ShardingSphere‑Proxy 5.4.1 极简配置示例镜像apache/shardingsphere-proxy:5.4.1目录结构宿主机./sharding ├── conf │ ├── server.properties # proxy服务配置 │ └── config-sharding.yaml # 分片逻辑配置 └── ext‑lib # 放mysql驱动jar包⚠️驱动下载MySQL8.0后端放入mysql-connector-j-8.0.32.jarMySQL5.7后端放入mysql-connector-java-5.1.49.jar驱动必须放到宿主机./proxy/ext‑lib挂载进容器。1docker run 启动命令在开始之前我们先不要配置运行一个空的shardingsphere,目的是把最基本的配置先copy到我们对应的目录里dockerrun-d--namesharding-test apache/shardingsphere-proxy:5.4.1#运行完成后看内容dockerinspect sharding-test我们看到在容器内的路径于是我们进去看dockerexec-itsharding-testbashcd/opt/shardingsphere-proxy llcdconf ll看到默认的文件# 把文件copy到我们的home中dockercpsharding-test:/opt/shardingsphere-proxy/conf/server.yaml /home/sharding/conf有了上面这个server.yaml后我们下面正式应用的就能跑了。dockerrun-d\--namesharding-proxy\-p3307:3307\-v/home/sharding/conf:/opt/shardingsphere-proxy/conf\-v/home/sharding/ext-lib:/opt/shardingsphere-proxy/ext-lib\apache/shardingsphere-proxy:5.4.12docker‑compose.yml 版本推荐version:3.8services:sharding-proxy:image:apache/shardingsphere-proxy:5.4.1container_name:sharding-proxyports:-3307:3307volumes:-./proxy/conf:/opt/shardingsphere-proxy/conf-./proxy/ext-lib:/opt/shardingsphere-proxy/ext-librestart:unless-stopped3简单配置1. conf/server.yaml把下面这些#去掉打开就可以了。authority:users:-user:root%password:123456-user:shardingpassword:shardingprivilege:type:ALL_PERMITTED2. conf/config‑sharding.yaml示例水平分表逻辑表t_order分2张表t_order_0、t_order_1后端是一台MySQLdatabaseds_0databaseName:sharding_dbdataSources:ds_0:url:jdbc:mysql://192.168.1.100:3306/ds_0?useSSLfalseserverTimezoneAsia/Shanghaiusername:rootpassword:Db123456connectionTimeoutMilliseconds:30000idleTimeoutMilliseconds:60000maxLifetimeMilliseconds:1800000maxPoolSize:50rules:-!SHARDINGtables:t_order:actualDataNodes:ds_0.t_order_${0..1}tableStrategy:standard:shardingColumn:user_idshardingAlgorithmName:t_order_modshardingAlgorithms:t_order_mod:type:MODprops:sharding-count:2说明databaseName: sharding_db客户端连接proxy之后要use这个库actualDataNodes数据源.物理表名MOD算法user_id % 2落到0、1表。4连接测试# 像普通mysql一样连接proxymysql-h127.0.0.1-P3307-uroot-p123456mysqluse sharding_db;mysqlshow tables;5额外开启读写分离极简片段追加到config‑sharding.yaml rules-!READWRITE_SPLITTINGdataSources:ds_0:writeDataSourceName:ds_0_writereadDataSourceNames:-ds_0_read二、ShardingSphere‑Proxy MySQL后端版本支持当前主流稳定版5.4.x / 5.5.x官方文档标注支持范围后端MySQL服务最低 MySQL 5.1.15上限 5.7.x、8.0.x⚠️ MySQL5.1/5.5 属于理论支持生产不建议用社区大量生产案例是MySQL5.7.22、MySQL8.0.x。生产实际最低建议MySQL 5 系列最低推荐 5.7.225.6及以下很多系统变量、binlog行为会踩坑不建议上生产。MySQL 8 系列最低推荐 8.0.18推荐8.0.30‑8.0.368.0早期小版本认证插件、系统变量容易出兼容报错。MySQL8.4(LTS)可以跑但官方文档尚未完全更新属于社区实践可用不做正式官宣支持。重要配套JDBC驱动放在ext‑lib后端MySQL版本Proxy使用驱动MySQL5.7mysql‑connector‑java‑5.1.49.jarMySQL8.0mysql‑connector‑j‑8.0.32.jar不要8.1有bug驱动版本必须和后端数据库匹配驱动放错是最多的报错来源。关键坑点Proxy有个参数proxy‑mysql‑default‑version默认值5.7.22后端是MySQL8.0时要改成对应8.0版本否则会查询已废弃的query_cache_size变量报连接异常。# conf/server.properties proxy-mysql-default-version8.0.28不要一个Proxy实例同时对接MySQL5.7 MySQL8.0协议版本会冲突不同大版本MySQL要部署多套Proxy实例。5.1/5.5仅适合测试验证分片、迁移、元数据模块很多兼容问题。老版本补充ShardingSphere 4.x已停止维护最低MySQL5.5只建议5.7不支持完整MySQL8。新项目直接用5.4.1/5.5.0不要使用4.x。小结理论最低MySQL 5.1.15测试可用底线MySQL5.7生产推荐底线MySQL5.7.22 / MySQL8.0.18
返回列表