ShardingSphere-Sharding-Proxy(安装和分表配置)| 学习笔记

本文涉及的产品
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/11257


ShardingSphere-Sharding-Proxy(安装和分表配置)

 

下面继续来学习 ShardingSphere,刚才介绍到ShardingProxy 的简介,包括它的安装方式,下面就把这个 ShardingProxy安装上,并且做一个简单的例子,然后把它先行动起来,先感受一下它的效果,然后感受之后,再来配置里面那个分库分表结合的内容。

先写个 ShardingProxy。它里边这个相关的配置。做这么一个配置,怎么配置给各位演示一下。首先里边的第一部分,把那文件肯定解压,解压之后找到CF 目录,在里边先改第一个文件,就是主要的有三个文件夹。(图片)

修改第一个文件:进入 conf 目录,修改文件server.yaml 打开两段内容注释。

现在把这个文件用一个编辑工具打开,会发现里边都是注释,改的方式很简单,把注释直接打开就可以,打开就是里边的这段,把这段注释给它打开就可以,这就是里边的第一部分,(tu)

写一下修改配置文件,然后在里边打开这两段内容的这个注释就可以,因为这个文件是一个 yaml 文件,所以为了方便就在项目 yaml 文件发现改那个注释掉一个去去掉特别麻烦,比如说在文件下创建个application.yaml,。然后把那个文件直接复制,然后用这个工具把这个注释快速去掉,之后把这个内容就直接再复制回来,看一下里边内容,第一部分就是现在说的 ShardingProxy是数据库的一个代理端,可以直接操作它,它可以直接当做数据库使用,所以要连有用户名密码,这里边用户名 root,密码root 但你可以改,另外再联的话相当于操作就是一个库一个表,在 ShardingProxy里边的库叫 Sharding db,也可以改为其他名字。下面是一些连接的相关参数这些注释掉就可以,这是改的第一部分,把这部分注释去掉,然后改善这个内容。

修改第二个文件:进入 conf 目录,config-sharding.yaml

这个文件就是配置里边那个分库分表中的一些相关的策略,把示例中内容改一下就可以,打开这个文件里面提供了两段示例,就是针对不同的数据库,首先第一个示例在MYSQL 里,告诉我们,如果说你想要连接 MYSQL 应该复制MYSQL 的驱动到目录中,因为它默认没有提供买入驱动,但连接其他的数据库也需要复制它相关的驱动,所以现在需要做一件事情,就是把MYSQL 驱动要布置一下,要不然最后连接会报错。

1、复制 mysql 驱动 jar 包到 lib 目录

If you want to connect to MYSOL,you should manually copy MYSQL driver to lib directory.(图)

2、配置分库分表规则。

第二部分改配置文件中的内容,也是把这段注释先打开,然后用它来改一下,那同样我把这个也是先复制过来。然后复制之后把它的注释打开,打开之后再给它复制回去。来看第一个叫 scheme name 就是你的数据库名字,因为咱现在操作这个 ShardingProxy的一个库叫 Sharding db,是一个数据库的一个代理端,然后下面是配置的数据源。它里边可以配置多个数据源,表有生成规则,只是现在是在ShardingProxy 做配置,比如先写一个小例子,先配置一个数据源,又叫 dS0,一会儿再配置多个,然后一个里边的这个位置需要连个数据库,这里边有一个数据库,比如说用这个 edu_1,这里边有一个空的数据库,没有表格,先点这个叫 edu_1,我本地是3306,这个数据库需要先创建,包括密码和数据库名字改成这个名字 dS0,所以建了一个数据源,然后在数据源中有咱们的表,创建一个表,命名为t_order,然后这个因为 ds_s{0}只有一个,再来一个ds0,然后表比如做个分表处理就是零,如果 ds 你有多个数据源,加个点选择写一还是写零,现在这里边用这个零,然后写完之后,下面有里边这种就是规则,比如根据 order id 做判断,如果它里边偶数到零里边,基数到一里边,另外就是你的主见这个策略下面另一张表,这张表先不加,后面再加多个表,先去掉,去掉之后,这里边把 t_order_item 这改一下,因为它里边只是绑定一个表,包括你的数据库做一个处理,但是目前应该只有一个库,所以这里边默认就写一个这个ds_s{0},如果多个,可以 ds_$(user_id  % 2)往里边做一个分工处理,目前就是先做一个库,一个表的处理,这是一段基本配置,不需要各位写,因为里面都有例子,用它才能改。

首先第一步写成以本地的库的这个数据源,改用密码,然后第二部分改你的表,比如这里边做了一个分表规则,包括策略,最终你的库的这个策略里边全有,跟之前ShardingProxy 中的配置非常一样。只是现在是在配置文件中。现在我只测了一个库和一个表。

3、启动 ShardingProxy 服务

(1):ShardingProxy 默认端口号 3307

第一步和第二步都改配置文件,然后第三步就启动 ShardingProxy服务。但是强调在这个过程中,发现这个 3306 端口只有一个库,里边没有表,直接去连接 ShardingProxy,然后它里边一创建表,我这个 edu_1 也会创建表,所以现在先把它用起来,然后再往下测试来启动啊,下面进行演示,找到里边这个bin 目录。注意改完之后,这些配置文件都需要保存一下,现在在这个 bin 目录位置,用 Windows bat,看不同版本,比如说就以 Windows 为例,现在就双击这个 bat 文件,然后把服务给它,看它能否启动。

8.1.png

 

直接双击看效果,当启动之后,看到最后一行出了一个提示:当前端口号还一个叫 active,那就表示现在成功。在过程中,各位注意这个 ShardingProxy。它默认的端口号是这个3307,要注意按端口号可以再请重新指定。比如说重新启动,用 CMD 打开,然后输入start.bat 3308 回车,它用的就是 3308 端口,默认是3307,实际就用默认 3307 把它送起来,当这里边提示 active 就表示成功,这就完成了里边这么一个启动。

8.2.png

4、通过 ShardingProxy 启动端口进行连接

1)打开 cmd 窗口连接 ShardingProxy,连接方式和连接 mysql 一样

然后启动之后怎么做?进入到第四步,通过 ShardingProxy启动端口进行一个连接,而连接方式跟连数据不一样,因为 ShardingProxy 可以直接当做数据库使用,就把ShardingProxy 用它的端口进行连接。强调这是理论上的,可以使用这些工具链接,但是它对于工具有一些版本的要求。就是不同版本工具有的连不上,有的可能能连上,所以就不用这个工具,因为版本有时不好找,版本有的行有的不行。直接通过cmd 窗口连接,绝对没有问题,要明确以工具用 so 一样或者avk 的都可以,但是有时候一般问题它可能连不上,所以建议各位直接用这个 cmd窗口连接,这样的话就可以连上,下面打开 cmd 窗口,然后连接上 ShardingProxy。然后过程要用到这个端口号叫 3307 连接方式,连接方式和连接mysql 一样。打开 cmd 窗口,写一个 mysql,因为它端口号码默认 307(mysql -p3307 -uroot  -p),密码是root,这样就连上了,但是注意现在连上的不是 mysql,而是 ShardingProxy 这个代理端。

8.3.png

(2)进行 sql 命令操作看到只有一个库

现在把它连上之后,然后可以在里边进行一些相应的命令的操作,就是进行一些 sql 命令的一些相关的操作,怎么操作给大家说一下。首先第一部分可以看一下当前有哪些数据库,来一个 show data base,看到目前数据库是只有一个 Sharding db,而这个数据库是在配置文件中配置过的,它目前就代理端,操作一个库和一个表,这是第二部分。

8.4.png

(3)Sharding_ db 数据库创建表

创建一个 create table ,把这表创建,然后这个表就是ds0 这个里边,这里边 mysql -p3307 -uroot  -p 里边有字段,就是 OID,包括用户ID 等等,回车把这表创建了,然后创建之后,现在看一下这个表 Sharding_ db,然后来一个 show tables, 查一下表中的数据 t_older,目前是等于空了,向表里面给它加上一条数据做一个效果,添加 insert,比如里边加几个值 ID 11,然后这个 ID 里边是 1init 就是它那个状态,但是现在回车,然后用 slight Di 查询,看里边是不是有这个数据了,就是现在把表创建,然后在里边做了这么一个相关的操作。

8.5.png

(4)向表添加上一条记录

添加记录就是刚才的效果,用这个 insert 语句把记录加到里面。这个做到了,然后接完之后,注意现在要怎么看效果,注意现在操作连接的是 ShardingProxy 代理端,真正数据库是在 3306 端口,现在打开本地的3306 端口刷新,在 edu_1 里边咱跟他说过这里边默认没有东西,没有创建过,然后现在这里边多了两个表,一个叫 t_order0,一个叫 t_order1 ,这个表不是我创建的,怎么创建的?因为在配置文件中我是配置这个规则,所以它根据你的配置会在你的那个实际的库里边把这两个表创建,这个是 ShardingProxy 帮我们做到的,不是我们创建的,然后看里边有数据,因为刚才我加的数据 11 1,根据这种规则向这里边加了这个数据,因为这是基数,加到这个 order_1 里面去了。所以这就是 ShardingProxy 最终看到的这么一个效果,就是 ShardingProxy 它里边,把这个表会帮我们创建,并且数据也加进去了。

8.6.png

 

(5):回到本地 3306 端口

操作之后,回到本地的 3306 端口,这个数据库能看到它就是这个ShardingProxy,这里边能看到就是已创建好了这个表和我们添加的这个数据,这个表不是我们手动创建的,是由ShardingProxy 这个过程,通过配置给我们做到的,ShardingProxy就是做这个事情,这个过程再重复一遍,第一个刚才启动,包括做各种配置,连的不是数据库,是ShardingProxy 这个代理端,然后代理端中只有一个库 Sharding_ db,我在里边建了库并且加了数据,这些操作都做完之后,它真正也会去按照配置,操作实际库里面的表或数据,包括扩展库创建,但是表不是我创建的,是它帮我做到的,并且里面数据也加进去了。比如可以再试一个,现在再加个数据,比如这个ID 改成 12.12,看现在是偶数,然后回车看数据,在这个 t_order0 里边有 12 数据,

8.7.png

 

根据这种就是分库分表的规则,这里边是分表规则,像这里边偶数奇数加到不同表格,所以这样就完成了ShardingProxy 中的一些基本操作,它就是这么来实现。

把这个过程能给它快速配置出来,它主要就是在里边下载软件,然后改配置文件,改完配置文件之后把它启动,启动之后用cmd 窗口去连接,这个就是 ShardingProxy,连接之后,在里边可以添加表,或者向表加数据,最终会帮我们在本地的3306 端口的实际的数据库中,然后实际上我们的表创建,包括数据添加这些过程,它都会帮我们做到。这是关于 ShardingProxy 一个基本的操作。

 

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