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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 快速学习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(分库配置)。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
SQL 关系型数据库 MySQL
ShardingSphere-Sharding-Proxy(安装和分表配置)| 学习笔记
快速学习ShardingSphere-Sharding-Proxy(安装和分表配置)。
ShardingSphere-Sharding-Proxy(安装和分表配置)| 学习笔记
|
关系型数据库 MySQL Java
Sharding-Proxy的基本功能使用
Sharding-Proxy是一个分布式数据库中间件,定位为透明化的数据库代理端。作为开发人员可以完全把它当成数据库,而它具体的分片规则在Sharding-Proxy中配置。
3116 0
Sharding-Proxy的基本功能使用
|
SQL 关系型数据库 数据库
学习分布式事务Seata看这一篇就够了,建议收藏
学习分布式事务Seata看这一篇就够了,建议收藏
16495 2
|
2月前
|
JSON API PHP
全球天气预报5天(经纬度版)免费API接口教程
本文介绍接口盒子提供的全球天气预报API,支持通过经纬度获取任意地区未来5天的详细天气数据,包含温度、气压、湿度、风速等12项气象要素。提供每3小时的精细化预报,个人开发者可免费调用(需注册获取KEY)。附请求参数、返回数据说明及PHP、Python调用示例,适用于气象平台、出行类APP、物联网监测等场景。
|
11月前
|
人工智能 Cloud Native 安全
从云原生到 AI 原生,网关的发展趋势和最佳实践
本文整理自阿里云智能集团资深技术专家,云原生产品线中间件负责人谢吉宝(唐三)在云栖大会的精彩分享。讲师深入浅出的分享了软件架构演进过程中,网关所扮演的各类角色,AI 应用的流量新特征对软件架构和网关所提出的新诉求,以及基于阿里自身实践所带来的开源贡献和商业能力。
744 105
|
10月前
|
监控 负载均衡 网络协议
OSPF在大型网络中的应用:高效路由与可扩展性
OSPF在大型网络中的应用:高效路由与可扩展性
694 1
|
10月前
|
人工智能 算法 物联网
企业级RAG全链路优化关键技术
本文深入解析了企业级RAG全链路的关键技术、效果优化、性能优化及应用实践。
786 7
|
关系型数据库 数据库 数据安全/隐私保护
springboot+dynamic-datasource多数据源配置动态切换
springboot+dynamic-datasource多数据源配置动态切换
3558 0
|
SQL 缓存 运维
使用篇丨链路追踪(Tracing)很简单:链路实时分析、监控与告警
使用篇丨链路追踪(Tracing)很简单:链路实时分析、监控与告警
6741 82
使用篇丨链路追踪(Tracing)很简单:链路实时分析、监控与告警
|
Kubernetes 容器
ETCD和api-server证书过期时间证书生成
ETCD和api-server证书过期时间证书生成
190 4