宝子们,之前工作弄过分库分表,正巧最近有点时间,就简单回顾整理一下,版本更新虽然快,但本质不变,简单整理下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.数据库
配置了主从,也好使
原创不易,谢谢大家支持,如对你有帮助,请留下你的足迹