Sharding-Proxy实战(水平分表、水平分库、垂直分表、读写分离)

Sharding-Proxy实战

基本概述

使用过Sharding-JDBC都知道需要为每一个运用到Sharding-JDBC的项目编写一大片配置文件,Sharding-Proxy就可以解决Sharding-JDBC上遇到问题,Sharding-Proxy定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持,简单来说分库分表的工作都由Sharding-Proxy服务端去完成,Sharding-Proxy是Webapp服务端,你只管发增删改查不有管你要操作什么库,Sharding-Proxy受到你的消息后会自己安排去操作那个数据库然后把结果给回你

Sharding-Proxy有以下几个特定

  1. Sharding-Proxy是一个独立的服务,需要安装安装,并且做好分库分表配置
  2. 目前只支持MySQL/PostgreSQL协议的的客户端

在这里插入图片描述

服务安装

安装包下载

这里我下载4.0.1的版本,Sharding-Proxy下载地址

在这里插入图片描述

在这里插入图片描述

解压安装包

使用命令解压压缩包,解压压缩包后进入到bin目录可以看到有几个启动脚本win下使用bat脚本,liunx使用sh脚本即可

# tar命令解压压缩包
tar -xvf apache-shardingsphere-incubating-4.0.1-sharding-proxy-bin.tar.gz

在这里插入图片描述

解压后的坑

注意这里有一个坑,解压压缩包后要检查一下lib下的文件是否完整,有时候解压完成后lib解压处理的文件会少了后缀名的,正常情况应该都是.jar后缀,如图这是异常情况,解决这个问题办法就是重新解压或者手动把那些文件名修改一下都不上.jar后缀,不让等一下启动服务时会提示找不到jar包

在这里插入图片描述

分表配置

修改server.yaml

进入到conf目录下,修改server.yaml文件

server.yaml修改很简单,只需要将这部分内容的注释去掉即可

在这里插入图片描述

修改config-sharding.yaml

进入到conf目录下,修改config-sharding.yaml文件,里面有一些模板,配置其实和JDBC是一模一样的,在本地数据库中创建一个demo_ds_0,当然也可以使用已有的数据库

在这里插入图片描述

使用注意

在配置文件中,可以那么一句话如果你要连接msyql那么需要手动的把mysql驱动的jar包放到lib目录下否则程序无法运行

在这里插入图片描述

在这里插入图片描述

服务启动

执行start.bat服务启动(liunx下执行sh文件)有2种方式带端口和不带端口

  1. 不带端口:默认使用3307端口
  2. 带端口:使用你指定的端口 start.bat 8888

看到如下内容表示启动成功

在这里插入图片描述

连接客户端

最好使用cmd命令行去连接,虽然如Navicat、DataGrip等这些客户端也是可以的,当时有时又不可以好奇怪的,所以这里使用cmd的mysql命令去连接Sharding-Proxy,就和连接数据库一样使用mysql -P3307 -uroot -p即可连接

注意不要搞混了哦这里连接的是Sharding-Proxy不是Mysql数据库,只是连接Sharding-Proxy方式和数据库一样

在这里插入图片描述

使用sql命令操作

在这里插入图片描述

在这里插入图片描述

查看本地数据库

查看我们本机的实际数据库中发生的变化,可以发现我们只执行了一条建表语句,Sharding-Proxy根据配置文件配置的规则给我们创建了t_order_0和t_order_1,并且我执行插入order_id是奇数所以数据被插入在t_order_1表中

在这里插入图片描述

分库配置

修改config-sharding.yaml

在这里插入图片描述

服务启动

执行start.bat服务启动(liunx下执行sh文件)有2种方式带端口和不带端口

  1. 不带端口:默认使用3307端口
  2. 带端口:使用你指定的端口 start.bat 8888

看到如下内容表示启动成功

在这里插入图片描述

连接客户端

最好使用cmd命令行去连接,虽然如Navicat、DataGrip等这些客户端也是可以的,当时有时又不可以好奇怪的,所以这里使用cmd的mysql命令去连接Sharding-Proxy,就和连接数据库一样使用mysql -P3307 -uroot -p即可连接

注意不要搞混了哦这里连接的是Sharding-Proxy不是Mysql数据库,只是连接Sharding-Proxy方式和数据库一样

在这里插入图片描述

使用sql命令操作

在这里插入图片描述

查看本地数据库

查看我们本机的实际数据库中发生的变化,可以发现我们只执行了一条建表语句,Sharding-Proxy根据配置文件配置的规则给我们创建了t_order_0和t_order_1,并且也根据相应的规则插入了数据

在这里插入图片描述

读写分离

读写分离也是一种很好的提升数据库性能的解决方案,在了解如何使用Sharding-Proxy之前首先需学会如何部署Mysql主从配置,如果还没部署过的前阅读以下文章

Sharding-Proxy是不做主从复制数据同步的,主从复制需要通过配置Mysql实现,而Sharding-Proxy只是根据语义(CRUD)判断你是做增删改查的那种操作,并且给你路由到主库/从库

Mysql-主从配置与读写分离

修改config-master_slave.yaml

进入到conf目录下,修改config-master_slave.yaml文件

在这里插入图片描述

服务启动

执行start.bat服务启动(liunx下执行sh文件)有2种方式带端口和不带端口

  1. 不带端口:默认使用3307端口
  2. 带端口:使用你指定的端口 start.bat 8888

看到如下内容表示启动成功

在这里插入图片描述

连接客户端

最好使用cmd命令行去连接,虽然如Navicat、DataGrip等这些客户端也是可以的,当时有时又不可以好奇怪的,所以这里使用cmd的mysql命令去连接Sharding-Proxy,就和连接数据库一样使用mysql -P3307 -uroot -p即可连接

注意不要搞混了哦这里连接的是Sharding-Proxy不是Mysql数据库,只是连接Sharding-Proxy方式和数据库一样

在这里插入图片描述

使用sql命令操作

在这里插入图片描述

查看本地数据库

查看我们本机的实际数据库中发生的变化,可以发现主从库同时都有刚刚插入的数据

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Sharding-Proxy 是一个开源的分库分表中间件,它可以帮助应用程序实现无感知的分库分表操作。下面是一个简单的步骤来利用 Sharding-Proxy 进行分库分表: 1. 安装和配置 Sharding-Proxy:首先,你需要下载 Sharding-Proxy 的安装包,并解压到你的服务器上。然后,根据你的需求修改配置文件,配置数据源和分片规则等信息。 2. 创建数据库和表:在进行分库分表之前,你需要创建相应的数据库和表结构。你可以选择手动创建,或者使用 Sharding-Proxy 提供的自动建表功能。 3. 配置分片规则:在 Sharding-Proxy 的配置文件中,你需要定义分片规则,指定如何将数据分散到不同的数据库和表中。可以使用基于范围、哈希、精确等多种分片算法。 4. 连接到 Sharding-Proxy:在应用程序中,需要修改数据库连接信息,将原来连接数据库的地址改为连接 Sharding-Proxy 的地址。这样应用程序就可以通过 Sharding-Proxy 访问分片后的数据。 5. 进行分库分表操作:现在你可以在应用程序中执行正常的数据库操作,而无需关心具体的分库分表细节。Sharding-Proxy 会根据配置的规则自动将数据路由到正确的库和表中。 需要注意的是,使用 Sharding-Proxy 进行分库分表操作需要仔细考虑数据一致性、事务处理、跨库查询等问题。在配置和使用过程中,建议参考官方文档和示例来确保正确性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JolyouLu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值