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表;
  4. 之前在node1和node2服务器节点上数据库下创建的user表是广播表。

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

具体的配置信息可以参考之前的文章进行配置!
广播表直接在配置文件中配置,绑定表交给对应的逻辑处理!

schemaName: sharding_db

dataSources:
  ljw_course_db1:
    url: jdbc:mysql://192.168.10.132:3306/ljw_course_db1?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: root
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1
  ljw_course_db2:
    url: jdbc:mysql://192.168.10.133:3306/ljw_course_db2?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: root
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1

rules:
  - !SHARDING
    tables:
      t_course:
        actualDataNodes: ljw_course_db${1..2}.t_course_${1..2}
        databaseStrategy:
          standard:
            shardingColumn: user_id
            shardingAlgorithmName: table-inline
        tableStrategy:
          standard:
            shardingColumn: cid
            shardingAlgorithmName: inline-hash-mod
        keyGenerateStrategy:
          column: cid
          keyGeneratorName: snowflake
      t_course_section:
        actualDataNodes: ljw_course_db${1..2}.t_course_section_${1..2}
        databaseStrategy:
          standard:
            shardingColumn: user_id
            shardingAlgorithmName: table-mod
        tableStrategy:
          standard:
            shardingColumn: corder_no
            shardingAlgorithmName: table-hash-mod
        keyGenerateStrategy:
          column: id
          keyGeneratorName: snowflake
    broadcastTables:
      - user

    shardingAlgorithms:
      table-inline:
        type: INLINE
        props:
          algorithm-expression: t_course_${user_id % 2 + 1}
      inline-hash-mod:
        type: INLINE
        props:
          algorithm-expression: t_course_${Math.abs(cid.hashCode()) % 2 + 1}
      table-mod:
        type: INLINE
        props:
          algorithm-expression: t_course_${user_id % 2 + 1}
      table-hash-mod:
        type: INLINE
        props:
          algorithm-expression: t_course_section_${Math.abs(corder_no.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> use sharding_db;
Database changed
mysql> show tables;
+-----------------------+------------+
| Tables_in_sharding_db | Table_type |
+-----------------------+------------+
| t_course_section      | BASE TABLE |
| user                  | BASE TABLE |
| t_course              | BASE TABLE |
+-----------------------+------------+
3 rows in set (0.01 sec)

mysql> select * from user;
+---------------------+----------+------+----------------+
| id                  | name     | age  | email          |
+---------------------+----------+------+----------------+
| 1682581847896547330 | 硕风和炜 |   18 | xxxxxxx@qq.com |
+---------------------+----------+------+----------------+
1 row in set (0.06 sec)

mysql> select * from t_course c  inner join t_course_section cs  on c.cid = cs.cid;
Empty set (0.11 sec)

mysql>

查找

在这里插入图片描述

🍀 四.总结

本篇文章主要讲解了ShardingSphere-Proxy绑定表与广播表详解与实战,实操过程非常重要,大家一定要动手亲自实践一下,必须掌握。关于ShardingSphere的内容我们就先讲解到这里,后续为大家带来更多的内容,大家敬请期待呦!!!。

💬 五.共勉

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

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

A Deep Framework for Hyperspectral Image Fusion Between Different Satellites

1.摘要 最近,将低分辨率高光谱图像(LR-HSI)与不同卫星的高分辨率多光谱图像(HR-MSI)融合已成为提高HSI分辨率的有效方法。然而,由于不同的成像卫星、不同的照明条件和相邻的成像时间,LR-HSI和H…

iOS开发-下拉刷新动画loading旋转指示器动画效果

iOS开发-下拉刷新动画loading旋转指示器动画效果 之前开发中实现下拉刷新动画loading旋转指示器动画效果 一、效果图 二、基础动画 CABasicAnimation类的使用方式就是基本的关键帧动画。 所谓关键帧动画,就是将Layer的属性作为KeyPath来注册,指定动画…

会议OA项目之权限管理个人中心(修改个人信息,选择本地图片进行头像修改)

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于OA项目的相关操作吧 数据表及分析 表数据 表分析 所谓的权限管理就是不同的人管理不同的事,拥有着管理不同事情的不同权力。那么第一张表--权限表&…

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:…

Java 注解

对于注解 Annotation 是从 Java 1.5 开始加入,对于 Java 17 来说,主要是来自模块 java.base 下的包java.lang.annotation。该包提供了 Java 编程语言注解的类库支持。 在没有注解之前, Java 中大量的使用了 XML 配置文件的方式, …

【C#】.Net Framework框架下的Authorize权限类

2023年,第31周,第3篇文章。给自己一个目标,然后坚持总会有收货,不信你试试! 在C#的.NET Framework中,你可以使用Authorize类来处理权限认证。Authorize类位于System.Web.Mvc命名空间中,它提供了…

JVM | 基于类加载的一次完全实践

引言 我在上篇文章:JVM | 类加载是怎么工作的 中为你介绍了Java的类加载器及其工作原理。我们简单回顾下:我用一个易于理解的类比带你逐步理解了类加载的流程和主要角色:引导类加载器,扩展类加载器和应用类加载器。并带你深入了解…

苍穹外卖-day09

苍穹外卖-day09 本项目学自黑马程序员的《苍穹外卖》项目,是瑞吉外卖的Plus版本 功能更多,更加丰富。 结合资料,和自己对学习过程中的一些看法和问题解决情况上传课件笔记 视频:https://www.bilibili.com/video/BV1TP411v7v6/?sp…

优化企业集成架构:iPaaS集成平台助力数字化转型

前言 在数字化时代全面来临之际,企业正面临着前所未有的挑战与机遇。技术的迅猛发展与数字化转型正在彻底颠覆各行各业的格局,不断推动着企业迈向新的前程。然而,这一数字化时代亦衍生出一系列复杂而深奥的难题:各异系统之间数据…

山水TW91耳机恢复出厂设置

当出现左右耳不互联或者设备无法配对时,可按照以下操作进行重置: ①先在手机端删除“SANSUI”耳机的配对信息。 ②耳机开机未连接状态下,连击4次左/右耳功能键后复位,耳机自动关机清除配对。(提示已关机表示操作正确&a…

如何快速用Go获取短信验证码

要用Go获取短信验证码,通常需要连接到一个短信服务提供商的API,并通过该API发送请求来获取验证码。由于不同的短信服务提供商可能具有不同的API和授权方式,我将以一个简单的示例介绍如何使用Go语言来获取短信验证码。 在这个示例中&#xff0…

使用 OpenCV 和 GrabCut 算法进行交互式背景去除

一、说明 我想,任何人都可以尝试从图像中删除背景。当然,有大量可用的软件或工具能够做到这一点,但其中一些可能很昂贵。但是,我知道有人使用窗口绘画3D魔术选择或PowerPoint背景去除来删除背景。 如果您是计算机视觉领域的初学者…

C#时间轴曲线图形编辑器开发1-基本功能

目录 一、前言 1、简介 2、开发过程 3、工程下载链接 二、基本功能实现 1、绘图面板创建 (1)界面布置 (2)显示面板代码 (3) 面板水平方向、竖直方向移动功能实现 (4)面板放…

2024届IC秋招兆易创新数字IC后端笔试面试题

数字IC后端实现PR阶段设计导入需要哪些文件? 设计导入需要的文件如下图所示。这个必须熟练掌握。只要做过后端训练营项目的,对这个肯定是比较熟悉的。大家还要知道每个input文件的作用是什么。 在吾爱IC后端训练营Cortexa7core项目中,你认为…

华为刷题:HJ3明明随机数

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);int N scan.nextInt();int[] arr new int[N];for (int i 0; i < N; i) {int n sca…

数据库压力测试方法小结

一、前言 在前面的压力测试过程中&#xff0c;主要关注的是对接口以及服务器硬件性能进行压力测试&#xff0c;评估请求接口和硬件性能对服务的影响。但是对于多数Web应用来说&#xff0c;整个系统的瓶颈在于数据库。 原因很简单&#xff1a;Web应用中的其他因素&#xff0c;…

基于ChatGPT聊天的零样本信息提取7.25

基于ChatGPT聊天的零样本信息提取 摘要介绍ChatIE用于零样本IE的多轮 QA 实验总结 摘要 零样本信息提取&#xff08;IE&#xff09;旨在从未注释的文本中构建IE系统。由于很少涉及人类干预&#xff0c;因此具有挑战性。 零样本IE减少了数据标记所需的时间和工作量。最近对大型…

【Git】Git的概念安装工作区-暂存区-版本库

文章目录 Git概念-版本控制器Git安装Centos平台&ubuntu Git基本操作创建Git本地仓库配置Git 认识⼯作区、暂存区、版本库添加文件查看.git文件总结添加文件场景2 Git概念-版本控制器 引入 我们在编写各种⽂档时&#xff0c;为了防⽌⽂档丢失&#xff0c;更改失误&#xff0…

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(…

Spring之IoC源码分析及设计思想(一)——BeanFactory

关于Spring的IOC Spring 是一个开源的 Java 平台&#xff0c;它提供了一种简化应用程序开发的框架。它是一个分层的框架&#xff0c;包括两个主要的内核&#xff1a;控制反转&#xff08;IOC&#xff09;和面向切面编程&#xff08;AOP&#xff09;。IOC 允许应用程序将组件之…