分库分表Sharding-Sphere

宝子们,之前工作弄过分库分表,正巧最近有点时间,就简单回顾整理一下,版本更新虽然快,但本质不变,简单整理下Sharding-sphere。
分库分表主要解决数据量大带来的性能问题,分为垂直/水平两维度,每个都可运用在分库分表上。

1.垂直,结构不同

1. 垂直分表
如以表字段拆分,本质还是两个独立的表,只是在业务中是一类,如商品,可分为商品基本表+详情两表
在这里插入图片描述
场景很多,如电商商品表可分为若干表,首页是商品名称等基本信息,此时只需查询基本信息表即可满足用户浏览,如点击详情后,在继续查询详情信息,本质都是商品相关
2.垂直分库
以业务为单位,如专库专表,用户一个表,订单一个表…
在这里插入图片描述
垂直分表/分库应该是在架构设计阶段完成。

2.水平,结构相同

1.水平分表,每组表结构一致,意为冗余
在这里插入图片描述
2.水平分库 以库为单位冗余
在这里插入图片描述
水平切分主要是后期业务量增长而设计的

——————————————————
Sharding-Sphere可以很好的解决分库分表和读写分离,通过简单配置即可完成
Sharding-JDBC:
在这里插入图片描述
简单场景:完成mysql的主从复制/读写分离/分库分表
mysql的几个基本文件
在这里插入图片描述
主从复制流程图
注:主从复制是mysql自带的,不依赖第三方中间件
在这里插入图片描述
mysql下载的包本地安装没有data文件夹和my.ini文件,家里电脑是windows的,Linux大同小异
1.自己搞一个配置文件,生成data文件夹的命令网上一堆,我忘了,我这里弄了个mysqlData文件夹
在这里插入图片描述

2.多复制几个mysql,模拟多节点
复制完了记得改data下的auto.cof文件中的uuid,或者直接删了也行
在这里插入图片描述

3.执行这个命令,windows下可生成多个程序节点在这里插入图片描述
4.如图
在这里插入图片描述
5.设置权限和账号
在这里插入图片描述
6.从节点
在这里插入图片描述
这里两个状态必须都是yes,前者为no可能是uuid没改,后者为no可能是因为从节点下过线,原因很多,跟配置啥的都有关系,问题不大

配置完了配置下项目
在这里插入图片描述
我用的是配置,官网上有各种版本各种情况的配置,直接复制就行。没下载GitHub,加上依赖很方便。

————————————————————————
Sharding-Proxy,这个是数据库代理,和mycat类似,我们只操作代理就可完成对数据库的分库分表、读写分离等操作,通过配置文件配置,配置的这堆东西还是sharding-JDBC那些
1.先下载个proxy到本地,解压,而后将lib中的没有jar结尾的那些包加上jar后缀,对你没听错,给那些残缺不全的jar加上jar…
2.配置,主要这俩
在这里插入图片描述
3.server.yaml 这个文件都是默认的,放开就行,我只是改了个密码,type哪里可设置权限,自行设置,官网一堆说明
在这里插入图片描述
4.config-sharding.yaml分库分表主要在这
在这里插入图片描述
在这里插入图片描述

这里注意一下,稍不注意就报了个Insert statement does not support sharding table routing to multiple data nodes.]错误,是因为配置文件策略没写对位置…
在这里插入图片描述
在这里插入图片描述
5.启动
在这里插入图片描述
6.连接测试一下,一些连接软件可能连不上,这样连接最可靠
在这里插入图片描述
好使…

7.配置
这里只是简单配置proxy
在这里插入图片描述
8.操作一下子
在这里插入图片描述
9.数据库
在这里插入图片描述

配置了主从,也好使
在这里插入图片描述

原创不易,谢谢大家支持,如对你有帮助,请留下你的足迹
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/GiantCrocodile/article/details/124520147