ShardingSphere-Proxy水平分片详解与实战

在这里插入图片描述

🚀 ShardingSphere 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 ShardingSphere 🚀

在这里插入图片描述
在这里插入图片描述

🍔 目录

    • 🍀 一.ShardingSphere-Proxy核心概念
    • 🍀 二.ShardingSphere-Proxy水平分片详解与实战
      • 🥦 2.1 实战环境准备
      • 🥦 2.2 shardingproxy服务器上修改配置文件config-sharding.yaml
      • 🥦 2.3 重启服务器 & 验证是否运行成功
      • 🥦 2.4 命令行远程连接简单测试
    • 🍀 三.ShardingSphere-Proxy分片实战测试
      • 🥦 3.1 命令行测试 - 插入 & 查找
    • 🍀 四.总结
    • 💬 五.共勉

🍀 一.ShardingSphere-Proxy核心概念

  Sharding-Proxy是ShardingSphere的第二个产品,定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench等操作数据,对DBA更加友好。

  • 向应用程序完全透明,可直接当做MySQL使用
  • 适用于任何兼容MySQL协议的客户端

在这里插入图片描述

🍀 二.ShardingSphere-Proxy水平分片详解与实战

🥦 2.1 实战环境准备

注意:这篇文章的实战讲解是建立在之前的文章实操基础上的,如果你之前的环境还没有搭建好,可以先去搭建好环境,然后再来学习本篇文章的实战就会非常快,事半功倍!

  1. 192.168.10.134服务器(shardingproxy)上部署的ShardingSphere-Proxy代理192.168.10.132服务器和192.168.10.133服务器;
  2. 之前在192.168.10.132服务器(node1-shardingsphere)上创建的ljw_course_db1数据库,以及数据库下创建的t_course_1表和t_course_2表;
  3. 之前在192.168.10.133服务器(node2-shardingsphere)上创建的ljw_course_db2数据库,以及数据库下创建的t_course_1表和t_course_2表;

🥦 2.2 shardingproxy服务器上修改配置文件config-sharding.yaml

具体的配置信息可以参考之前的文章:ShardingSphere分库分表实战之水平分库和水平分表进行配置!

schemaName: sharding_dbdataSources:ljw_course_db1:url: jdbc:mysql://192.168.10.132:3306/ljw_course_db1?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: rootpassword: rootconnectionTimeoutMilliseconds: 30000idleTimeoutMilliseconds: 60000maxLifetimeMilliseconds: 1800000maxPoolSize: 50minPoolSize: 1ljw_course_db2:url: jdbc:mysql://192.168.10.133:3306/ljw_course_db2?useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: rootpassword: rootconnectionTimeoutMilliseconds: 30000idleTimeoutMilliseconds: 60000maxLifetimeMilliseconds: 1800000maxPoolSize: 50minPoolSize: 1rules:
- !SHARDINGtables:t_course:actualDataNodes: ljw_course_db${1..2}.t_course_${1..2}databaseStrategy:standard:shardingColumn: user_idshardingAlgorithmName: table-inlinetableStrategy:standard:shardingColumn: cidshardingAlgorithmName: inline-hash-modkeyGenerateStrategy:column: cidkeyGeneratorName: snowflakeshardingAlgorithms:table-inline:type: INLINEprops:algorithm-expression: t_course_${user_id % 2 + 1}inline-hash-mod:type: INLINEprops:algorithm-expression: t_course_${Math.abs(cid.hashCode()) % 2 + 1}keyGenerators:snowflake:type: SNOWFLAKE

在这里插入图片描述

🥦 2.3 重启服务器 & 验证是否运行成功

docker restart shardingproxy
docker logs shardingproxy

在这里插入图片描述

🥦 2.4 命令行远程连接简单测试

mysql -h192.168.10.134 -P13308 -uroot -p

逻辑库建立

在这里插入图片描述

🍀 三.ShardingSphere-Proxy分片实战测试

🥦 3.1 命令行测试 - 插入 & 查找

mysql> show databases;
+------------------------+
| schema_name            |
+------------------------+
| readwrite_splitting_db |
| information_schema     |
| performance_schema     |
| sys                    |
| sharding_db            |
| mysql                  |
+------------------------+
6 rows in set (0.01 sec)mysql> use sharding_db
Database changed
mysql> show tables;
+-----------------------+------------+
| Tables_in_sharding_db | Table_type |
+-----------------------+------------+
| user                  | BASE TABLE |
| t_course              | BASE TABLE |
| t_course_section_2    | BASE TABLE |
| t_course_section_1    | BASE TABLE |
+-----------------------+------------+
4 rows in set (0.01 sec)mysql> select * from t_course;
+---------------------+---------+-----------+-------------------------------+---------------------------------------------------+--------+--------+
| cid                 | user_id | corder_no | cname                         | brief                                             | price  | status |
+---------------------+---------+-----------+-------------------------------+---------------------------------------------------+--------+--------+
| 1684390587633422337 |    1001 |      NULL | Sharding-JDBC强制路由案例实战 | 全网Sharding-JDBC强制路由案例实战最详细讲解!!! | 8939.0 |      0 |
| 1684390587700531202 |    1002 |      NULL | Sharding-JDBC强制路由案例实战 | 全网Sharding-JDBC强制路由案例实战最详细讲解!!! | 8939.0 |      0 |
| 1684390587700531203 |    1003 |      NULL | Sharding-JDBC强制路由案例实战 | 全网Sharding-JDBC强制路由案例实战最详细讲解!!! | 8939.0 |      0 |
| 1684390587700531204 |    1004 |      NULL | Sharding-JDBC强制路由案例实战 | 全网Sharding-JDBC强制路由案例实战最详细讲解!!! | 8939.0 |      0 |
| 1684390587767640066 |    1005 |      NULL | Sharding-JDBC强制路由案例实战 | 全网Sharding-JDBC强制路由案例实战最详细讲解!!! | 8939.0 |      0 |
+---------------------+---------+-----------+-------------------------------+---------------------------------------------------+--------+--------+
5 rows in set (0.01 sec)

插入 & 查找

在这里插入图片描述

🍀 四.总结

本篇文章主要讲解了ShardingSphere-Proxy水平分片详解与实战,实操过程非常重要,大家一定要动手亲自实践一下,必须掌握。下节预告,ShardingSphere-Proxy绑定表与广播表详解与实战,大家敬请期待呦!!!。

💬 五.共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/12981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫时遇到SSL证书验证错误解决办法汇总

在进行Python爬虫任务时,遇到SSL证书验证错误是常见的问题之一。SSL证书验证是为了确保与服务器建立的连接是安全和可信的,但有时候可能会由于证书过期、不匹配或未受信任等原因导致验证失败。为了解决这个问题,本文将提供一些实用的解决办法…

【电路效应】信号处理和通信系统模型中的模拟电路效应研究(SimulinkMatlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、Simulink仿真实现 💥1 概述 在信号处理和通信系统模型中,模拟电路效应研究是指考虑到实际电路的特性对信号进行建模和分析的过程。模拟电路效应…

ffplay播放器剖析(6)----音视频同步分析

文章目录 1. 音视频同步基础1.1 音视频同步策略1.2 音视频同步概念1.3 FFmpeg中的时间单位1.4 不同结构体的time_base/duration分析1.5 不同结构体的pts/dts分析1.6 ffplay中Frame结构体分析1.7 Vidoe Frame PTS获取及矫正1.8 Audio Frame PTS的获取 2.以音频为基准3.以视频为基…

excel绘制折线图或者散点图

一、背景 假如现在通过代码处理了一批数据,想看数据的波动情况,是不是还需要写个pyhon代码,读取文件,绘制曲线,看起来也简单,但是还有更简单的方法,就是直接生成csv文件,csv文件就是…

【MySQL】事务之MVCC(多版本并发控制)

【MySQL】事务-MVCC 一、数据库并发的三种场景二、MVCC2.1 3个记录隐藏字段2.2 undo log(撤销日志)2.3 模拟MVCC---update2.3.1 delete2.3.2 insert2.3.3 select 2.4 Read View2.5 整体流程 三、RR(可重复读)与RC(读提…

【3-D深度学习:肺肿瘤分割】创建和训练 V-Net 神经网络,并从 3D 医学图像中对肺肿瘤进行语义分割研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

sql server表值函数

一、创建测试表 Employees 二、创建表值函数 -- DROP FUNCTION TableIntSplit;CREATE FUNCTION TableIntSplit(Text NVARCHAR(4000),Sign NVARCHAR(4000)) RETURNS tempTable TABLE(Id INT ) AS BEGIN DECLARE StartIndex INT DECLARE FindIndex INT DECLARE Content VARCHAR(…

阿里云盘自动每日签到无需部署无需服务器(仅限学习交流使用)

一、前言 阿里云盘自动每日签到,无需部署,无需服务器 执行思路:使用金山文档的每日定时任务,执行阿里云盘签到接口。 二、效果展示: 三、步骤: 1、进入金山文档网页版 金山文档官网:https:…

Verilog语法学习——LV7_求两个数的差值

LV7_求两个数的差值 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 描述 根据输入信号a,b的大小关系,求解两个数的差值:输入信号a,b…

【飞书】飞书导出md文档 | 飞书markdown文档导出 | 解决飞书只能导出pdf word

一、飞书导出markdown github地址:https://github.com/Wsine/feishu2md 这是一个下载飞书文档为 Markdown 文件的工具,使用 Go 语言实现。 请看这里:招募有需求和有兴趣的开发者,共同探讨开发维护,有兴趣请联系。 二、…

MySQL数据库分库分表备份(shell脚本)

创建目录 mkdir /server/scripts 一、使用脚本实现分库备份 1、创建脚本并编写 [rootlocalhost scripts]# vim bak_db_v1.sh #!/bin/bash ######################################### # File Name:bak_db_v1.sh # Version: V1.0 # Author:Shen QL # Email:17702390000163.co…

干翻Dubbo系列第四篇:Dubbo3第一个应用程序细节补充

前言 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽都顺利。 如…

短视频矩阵系统源码开发流程​

一、视频矩阵系统源码开发流程分为以下几个步骤: 四、技术开发说明: 产品原型PRD需求文档产品交互流程图部署方式说明完整源代码源码编译方式说明三方框架和SDK使用情况说明和代码位置平台操作文档程序架构文档 一、抖音SEO矩阵系统源码开发流程分为以…

【Linux】进程通信 — 共享内存

文章目录 📖 前言1. 共享内存2. 创建共享内存2.1 ftok()创建key值:2.2 shmget()创建共享内存:2.3 ipcs指令:2.4 shmctl()接口:2.5 shmat()/shmdt()接口:2.6 共享内存没有访问控制:2.7 通过管道对共享内存进…

Python进行数据分析(详细教程)

1.为什么选择Python进行数据分析? Python是一门动态的、面向对象的脚本语言,同时也是一门简约,通俗易懂的编程语言。Python入门简单,代码可读性强,一段好的Python代码,阅读起来像是在读一篇外语文章。Pyth…

Jenkins搭建最简教程

纠结了一小会儿,到底要不要写这个,最终还是决定简单记录一下,因为Jenkins搭建实在是太简单了,虽然也有坑,但是坑主要在找稳定的版本上。 先学一个简称,LTS (Long Term Support) 属实是长见识了&#xff0c…

docker 搭建jenkins

1、拉取镜像 docker pull jenkins/jenkins:2.4162、创建文件夹 mkdir -p /home/jenkins_mount chmod 777 /home/jenkins_mount3、运行并构建容器 docker run --restartalways -d -p 10240:8080 -p 10241:50000 -v /home/jenkins_mount:/var/jenkins_home -v /etc/localtime:…

如何选择台式还是便携式多参数水质检测仪呢

选择台式还是便携式多参数水质检测仪主要取决于具体的使用需求和场景。 1.便携式多参数水质检测仪适用于需要在不同地点进行水质检测的情况,例如户外采样、实地调查等。它具有小巧轻便的特点,方便携带和操作,适合需要频繁移动或需要灵活使用的…

如何维护你的电脑:提升性能和延长使用寿命

如何维护你的电脑:提升性能和延长使用寿命 😇博主简介:我是一名正在攻读研究生学位的人工智能专业学生,我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任何问题或困惑,欢迎随时来交流哦&…

AWVS 15.6 使用教程

目录 介绍 版本 AWVS具有以下特点和功能: 功能介绍: Dashboard功能: Targets功能: Scans功能: Vulnerabilities功能: Reports功能: Users功能: Scan Profiles功能&#x…