Sharding-Proxy查询分库分表数据,很方便!!
创始人
2024-03-29 04:28:36
0

##背景
目前公司不大,没有方便的数据库平台支持分库分表数据的查询,每次只能拿到分表的数据字段,手动hash获得标的索引,再去物理表查询,费时费力

##改造
目前市面上有很多mysql分库分表的代理,自己选择了Sharding-proxy

我用的docker,用的Sharding-proxy版本4.1.0,没有用太高的,太高的试了一次,一直有问题,mysql客户端连不上(navicat 15不行,后来换了mysql WorkBench)

##流程
1、下载Sharding-proxy
使用docker下载

docker pull apache/sharding-proxy:4.1.0

下载好后,自己本地创建目录与docker目录对应,然后启动,对外端口用13408

docker run --name=sharding_proxy_4_1_0 -d -v /Users/kang/sharding_proxy4.1.0/conf:/opt/sharding-proxy4.1.0/conf -v /Users/kang/sharding_proxy4.1.0/ext-lib:/opt/sharding-proxy4.1.0/ext-lib --env PORT=3408 -p13408:3408 apache/sharding-proxy:4.1.0

mysql需要下载jar包,放到ext-lib目录下,conf文件下,创建config-sharding.yaml和server.yaml
在这里插入图片描述
其中config-sharding.yaml是物理表与逻辑表的对应关系,server.yaml是登录sharding-proxy的用户信息
config-sharding.yaml 可参考官网配置(https://shardingsphere.apache.org/document/legacy/3.x/document/cn/manual/sharding-proxy/configuration/) 这里我只写了需要的

schemaName: sharding_dbdataSources:tracking_sharding:  //数据库别名url: jdbc:mysql://自己的数据库地址username: ****password: *****connectionTimeoutMilliseconds: 60000idleTimeoutMilliseconds: 60000maxLifetimeMilliseconds: 1800000maxPoolSize: 65shardingRule:tables:logistics_track_info: //逻辑表actualDataNodes: tracking_sharding.logistics_track_info_${0..511} //物理表 512个表tableStrategy: inline:shardingColumn: logistics_numberalgorithmExpression: logistics_track_info_${logistics_number % 512}bindingTables:- logistics_track_info,logistics_track_relationdefaultTableStrategy:none:

server.yaml

authentication:users:root: //可访问所有表password: rootsharding:  //只能访问shardingpassword: shardingauthorizedSchemas: sharding_db

启动之后,查看docker日志,没有报错,最后提示加载了逻辑表和所有物理表,就是成功的
在这里插入图片描述
然后用mysql workbench链接
在这里插入图片描述
启动后,直接连会有这个报错,一直连不上

Lost connection to MySQL server at 'reading initial communication packet', system error: 0

在这里插入图片描述
等个十几分钟,再练就可以了(有时候就是连不上,我就重启sharding-proxy,搞几次就可以),,具体原因不清楚,可能docker不稳定,导致连不上

总结
1、每次重启,都会连不上,很奇怪,多次重启,多尝试就可以
2、我的分表有500多,导致30s查询超时,加大这个值
在这里插入图片描述
在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...