Sharding-Proxy查询分库分表数据,很方便!!

news2025/1/13 6:07:55

##背景
目前公司不大,没有方便的数据库平台支持分库分表数据的查询,每次只能拿到分表的数据字段,手动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_db

dataSources:
  tracking_sharding:  //数据库别名
    url: jdbc:mysql://自己的数据库地址
    username: ****
    password: *****
    connectionTimeoutMilliseconds: 60000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 65

shardingRule:
  tables:
    logistics_track_info: //逻辑表
      actualDataNodes: tracking_sharding.logistics_track_info_${0..511} //物理表 512个表
      tableStrategy: 
        inline:
          shardingColumn: logistics_number
          algorithmExpression: logistics_track_info_${logistics_number % 512}
  bindingTables:
    - logistics_track_info,logistics_track_relation
  defaultTableStrategy:
    none:

server.yaml

authentication:
  users:
    root: //可访问所有表
      password: root
    sharding:  //只能访问sharding
      password: sharding
      authorizedSchemas: 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查询超时,加大这个值
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

24.前端笔记-CSS-vertical-align属性

1、vertical-align属性使用场景 经常用于设置图片或表单(行内块元素)和文字垂直对齐。 只对行内元素或行内块元素有效 vertical-align:baseline|top|middle|bottom值描述baseline默认,元素放在父元素的基线上top把元素顶端与行种最高元素顶…

这款 Java 性能调优的可视化工具,你真的会用吗?

VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来…

以太网 VLAN(VLAN划分方式)

2.8.3 以太网 VLAN(VLAN划分方式) VLAN的划分方式有2.8.3 以太网 VLAN(VLAN划分方式)一、基于端口划分二、基于MAC地址划分三、基于IP子网划分四、基于协议划分五、基于策略划分一、基于端口划分 简述:端口上进行手动…

python安装 yaml、pymysql、python-docx

python安装 yaml E:\python3.10.7>pip install pyyaml python安装 pymysql E:\python3.10.7>pip install pymysql python安装 python-docx E:\python3.10.7>pip install python-docx python安装 sqlalchemy E:\python3.10.7>pip install sqlalchemy

客快物流大数据项目(九十四):ClickHouse的SummingMergeTree入了解

文章目录 ClickHouse的SummingMergeTree深入了解 一、创建SummingMergeTree引擎表的的语法 二、创建Su

Dubbo SPI机制核心原理,你掌握了吗?|原创

这篇文章内容很干,做好心理准备!本文详细讲解了 Dubbo SPI 诞生原因以及它的用法,并且详细解读了核心类 ExtensionLoader 的关键属性,再根据demo 对 SPI 的加载原理进行详细解读。文章较长,建议收藏!文末有…

【BP回归预测】基于matlab随机蛙跳算法SFLA优化神经网络数据回归预测【含Matlab源码 2272期】

⛄一、蛙跳算法 1 改进的免疫蛙跳算法 免疫蛙跳算法具有混合蛙跳算法的全局优化与局部细致搜索优点, 可以优化连续问题和离散问题, 具有较强的鲁棒性;同时, 群体具有的免疫机制对群体进行控制和调节, 把目标函数和制约条件作为青蛙群体的抗原, 保证生成的青蛙群体直接与问题相…

亚马逊爆锤之下,中国跨境电商出路何在?

跨境电商服务行业已经发展了十几年了,加之新冠疫情的影响,众多卖家企业都将视线转向了跨境电商市场,行业里一直不断涌现着众多的服务平台,今年,许多像Starday这样的新生跨境电商服务平台在行业里势头猛进,而…

ImmunoChemistry丨ICT艾美捷一氧化氮合酶说明书

ImmunoChemistry艾美捷一氧化氮合酶测定为评估亚硝化应激抑制剂和活化剂的效力提供了一个很好的筛选选择,并将有助于确定氧化和亚硝化应激如何调节不同的细胞内途径。该试剂盒使用二氨基荧光素-2二乙酸酯(DAF-2DA)染料评估细胞内游离一氧化氮…

原生API编写简单富文本编辑器003

原生API编写简单富文本编辑器003 系列文章快速阅读: 富文本编辑器开发系列-1-基础概念 富文本编辑器开发系列2-document.execCommand 的API 富文本编辑器开发系列3-selection 富文本编辑器开发系列4——Range对象 富文本编辑器开发系列5——浏览器Selection API探究…

思科设备中STP生成树协议及其配置

目录 一、网络冗余存在的问题 1.广播风暴 2.MAC地址表震荡 二、STP简介 1.BPDU简介与字段含义 2.网桥ID 3.路径开销 4.端口ID 5.BPDU计时器 (1)Hello Time (2)Forward Delay转发延迟 (3)Max Ag…

[附源码]JAVA毕业设计小区物业管理系统录像展示.mp4(系统+LW)

[附源码]JAVA毕业设计小区物业管理系统录像展示.mp4(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09…

【Golang】切片的底层实现(关于slice调用append函数后分配新数组的问题)

问题描述 今天在写代码的时候遇到一个很奇怪的现象,先看下面两段代码 func push(a []int, v int) {a[1] 2a append(a, v) } func main() {a : []int{0, 1, 2}push(a, 3)fmt.Println(a) }结果:[0 2 2] func push(a []int, v int) {a append(a, v)a[…

宝塔下 nginx 支持图片放缩

要想通过nginx实现图片的放缩功能,首先需要对nginx添加http_image_filter_module模块的支持,首先查看安装的nginx是否已经支持了对应的模块 nginx -V 如图,如果返回的代码中没有包含 http_image_filter_module,则代表安装的nginx…

Docker学习笔记3(狂神)

可视化 这样我们就已经安装成功了。 我们一般选择本地的。 然后我们就可以看到这样的面板。 不过这个我们平时不会去使用,只是作为了解即可。 镜像分层的理解: 如何提交一个自己的镜像。 Commit镜像 实战测试 我们现在启动了tomcat。 我们进入了tomc…

Spring RestTemplate请求过程

文章目录前言1. RestTemplate请求整体过程2. httpRequest 创建3. doWithRequest4. execute5. http响应解析前言 目前Spring RestTemplate是常用的http请求工具类,本文简单Spring RestTemplate的请求过程。 1. RestTemplate请求整体过程 接下来以ResponseEntity e…

paddleOCR识别问题和解决方案

常见问题解答: 文本检测相关FAQ paddle ocr 常见问答 https://aistudio.baidu.com/aistudio/projectdetail/4491412 参数介绍 import argparse import os import sys import cv2 import numpy as np import paddle from PIL import Image, ImageDraw, ImageFont …

如何基于 APISIX 迭代数字智联平台

分享嘉宾:沈巍,浙大网新研发总监。 网新电气成立于 2011 年,属于浙大网新旗下,为绿色智慧交通系统解决方案的提供商。业务范围包括铁路、隧道、城市智能交通、航空、高速公路等行业。整个高铁信息化的业务分布占到了全国市场的 20…

Electron 麒麟 Linux 系统 root 账户报错

使用Electron打包成客户端在麒麟Linux 操作系统上运行,普通用户启动程序正常 使用root用户出现各种问题。总结问题如下: 1. Running as root without --no-sandbox is not supported。 解决方案: 在启动命令后面加入 --no-sandbox sudo …

为SSH远程配置固定的公网TCP端口地址【内网穿透】

由于使用免费的cpolar生成的公网地址,为随机临时地址,24小时内会发生变化,并且带宽较小,只有1M。对于需要长期SSH远程的用户来说,配置固定的公网TCP端口地址,提高带宽就很有必要。 1. 保留一个固定TCP端口地…