ShardingSphere-Sharding-Proxy(分库配置) | 学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习ShardingSphere-Sharding-Proxy(分库配置)。

开发者学堂课程【数据库中间件ShardingSphere详解ShardingSphere-Sharding-Proxy(分库配置)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/666/detail/11258


ShardingSphere-Sharding-Proxy(分库配置)

 

刚才的内容完成了 ShardingProxy 对数据库的分表操作,最终通过 ShardingProxy 看到在 edu_1 里面创建出了 t_order_0 t_order_1 两个表。然后下面继续用 ShardingProxy 完成其他配置,主要做连个配置,第一个用 ShardingProxy完成一个分库的一个配置,然后第二个用 ShardingProxy 完成读写分离的操作。

第一个用 ShardingProxy 完成一个分库的操作怎么做?它的配置应该跟刚才写法差不多。

1.创建两个数据库

2.找到 conf 目录,config-sharding.yaml

找到 ShardingProxy 里边 conf 目录,在里边找到一个配置文件 config-sharding.yaml,在这里边来完成相应的修改,然后把它打开进行相应的修改,看在里边配置是一个数据库,就是 ds0,然后里边有两个表 t_order_0 t_order_1,然后现在给 t 它改成多个库和多个表的情况,那怎么改?来看一下就是之前把那个原始配置文件已经放到了这个 application.yaml 里边,现在把它就直接复制过去,把之前内容给它替换掉,用它改装的效果,因为这是它这个文件中自带的一种原始的效果,现在演示一下,因为现在要做成这种分库操作,并且里边也要做到分表。

首先创建两个数据库,比如这个数据库已经创建过了,一个叫edu_db_1,一个叫 edu_db_2,这是第一部分先建两个库,第二部就在配置文件中完成相应的配置,现在有两库是配置两个datasources 数据源,第一个看一下表 edu_db_1, demo_ds_0 改为 edu_db_1,下一个把 demo_ds_1 改为 edu_db_2,它们用的都是 3306,然后用户名密码都是 root,修改配置两个数据源 demo_ds_0 demo_ds_1,然后在下面就创建一个表 t_order,保留一个表,这里边是t_order_${0..1},其实也可以建为 t_order_${1..2},稍微改一下这个规则,在规则位置 t_order_$(user_id  % 2+1),之前说过如果能整除零或者零加一就是一,然后放到 order1 里边,然后其它值放到 order2 中,这是里边一种分表和分库的一个策略,看一下在策略中应该都是咱们这些学到的,它在分库的时候根据 user_id 能被二整除,那就是 ds_0,如果不能整除,那就是 ds_1,这是分库策略,由 user_id 决定,如果 ds_0 ds_1 都有 t_order_${1..2}这个表,这个表根据 user_id,如果它能被二整除,那就是 ds_1,不能整除,就是 ds_2,这个完成分库分表的这么一个配置。

3.启动 ShardingProxy 服务

接下来测试一下配置效果,按照刚才那个分表过程,启动这个ShardingProxy 服务,然后在里面进行相应的操作,现在就启动一下,看一下现在打开这个文件应该保存了,然后打开 bin 目录下的 start.bat,把这个先启动,里边有一个叫 active,表示现在就启动成功了。

2.1.png

4.打开 cmd 窗口,连接 ShardingProxy 服务

打开 cmd 窗口,连接 ShardingProxy 服务可以当做 mysql 使用,连接之后,然后在里面还是进行一系列操作,创建表和添加记录最终的过程,然后最后进行实现,现在进行连接,打开 cmd 窗口,窗口输入 mysql -3307 -uroot -p,输入密码,连上之后看一下里面有哪些数据库,里面使用 use Sharding_db ,然后使用之后,在里面把这个表做创建,用之前使用的连接方式连上之后,连上之后就创建了一个数据库:

2.2.png

(1)     :创建库数据库表,向表添加记录

ds0 里面的内容进行复制,创建为一个 order 表,在里边执行下,表创建创建了之后,向表里面给它添加记录,还是刚才那个给它加 11,然后在 cmd 窗口中完成了建表和线下操作,然后之后打开本地的 3306,这里边发现两个数据库中有两个表,一个 t_order_1,一个 t_order_2,包括里边数据都有,刚才加的是奇数,所以它放到这里边,现在把这个就完成了一个创建。

2.3.png

(2)连接本地 3306 MySql 数据库服务器

接下来连接本地 3306 MySql 数据库服务器,然后这个时候看到这个表已定创建出来了,里边也已经有了刚才加的这个数据,比如包括 order_1 order_2,所以这样的话我们就完成了用 ShardingProxy 分库分表的操作,这个就完成了,所以各位把这个配置给他快速做到,这个流程并不复杂,比如说为了明显再试一条记录,把 VALUES<11,1.init>改为 VALUES<13,2.init>,但是 user_id是偶数,它的数据是到 edu_db_1 里面,然后 13 是奇数,所以它应该在 t_order_2里边的数据。这样完成了分库和分表的操作,效果就做到了,所以把这个过程要特别熟练,能快速的配出来,因为是一个固定的一个流程。

总结:

先创建两个数据库,然后改配置文件,按照我们的规则,两个数据库的数据源,包括你的分库分表规则,最终启动,然后建表,建这个家记录,最终在本地表创建了,数据加进去,就完成了分库分表的过程,这样就完成了 ShardingSphere-Sharding-Proxy(分库配置)。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 关系型数据库 MySQL
ShardingSphere-Sharding-Proxy(安装和分表配置)| 学习笔记
快速学习ShardingSphere-Sharding-Proxy(安装和分表配置)。
ShardingSphere-Sharding-Proxy(安装和分表配置)| 学习笔记
|
4月前
|
Java Apache Maven
Apache ShardingSphere 实现分库分表及读写分离
Apache ShardingSphere 实现分库分表及读写分离
75 0
|
6月前
|
SQL 存储 Java
Sharding-JDBC 如何实现分片
以上是V 哥在教学过程中实现分片的示例步骤,Sharding-JDBC能够实现SQL的分片操作,将请求路由到正确的数据库和表中,从而实现数据的水平扩展,这是在使用例如 MySQL作为数据库的场景中经常会使用到的,但如果你的企业正在考虑分布式数据库迁移,V 哥建议可以考虑 TiDB 或 OceanBase 这样的分布式数据库,因为它们天然就支持分布式,而不需要考虑这些。
|
6月前
|
负载均衡 算法 Java
Sharding-JDBC如何实现读写分离
通过以上步骤,Sharding-JDBC能够实现数据库的读写分离,从而提高应用程序的读取性能。欢迎关注威哥爱编程,一起学习成长。
|
SQL 存储 算法
聊聊 Sharding-JDBC 分库分表
聊聊 Sharding-JDBC 分库分表
|
SQL 负载均衡 算法
聊聊 Sharding-JDBC 实现 读写分离~
聊聊 Sharding-JDBC 实现 读写分离~
|
SQL 关系型数据库 MySQL
ShardingSphere-Sharding-Proxy(读写分离) | 学习笔记
快速学习ShardingSphere-Sharding-Proxy(读写分离)。
ShardingSphere-Sharding-Proxy(读写分离) | 学习笔记
|
关系型数据库 Java MySQL
ShardingSphere-Sharding-Proxy简介 | 学习笔记
快速学习ShardingSphere-Sharding-Proxy简介。
ShardingSphere-Sharding-Proxy简介 | 学习笔记
|
SQL 算法 Java
ShardingSphere-Sharding-JDBC水平分库(1) | 学习笔记
快速学习ShardingSphere-Sharding-JDBC水平分库(1)。
ShardingSphere-Sharding-JDBC水平分库(1) | 学习笔记
|
监控 关系型数据库 MySQL
ShardingSphere-Sharding-JDBC (读写分离) | 学习笔记
快速学习ShardingSphere-Sharding-JDBC (读写分离)。
ShardingSphere-Sharding-JDBC (读写分离)  | 学习笔记