开启分片支持需要如何去做?

news2024/11/18 18:31:52

开启分片支持

  如果您计划使您的Javashop系统数据分片,请参考本文档进行相应的配置。

一、做好分片策略

  在开始之前,您应该根据自己的业务情况准备好分片策略,包括:

  1、要用几个数据库来分片

  2、相应的表要分几张表

  在本例,我们假设用2个数据库分片,相应的表分两个表。

二、分片数据源准备

  请根据您的业务情况准备供分片的Mysql数据库,如准备好两台mysql供分片使用:

  在这里我们指定javashop0、javashop1两台mysql数据库。

三、安装表结构

  1、分别javashop0、javashop1两台mysql数据库中安装所有的数据表。

  执行脚本:

  我们分表的sql脚本在如下目录:

  deploy/src/main/resources/scheme/standard/default_database.sql

  注:

  分别在javashop0、javashop1数据库中执行default_database.sql脚本进。行创建新的数据表。deploy是指javashop工程中的deploy工程目录

  2、在数据源中安装要分表的sql吧

  执行脚本:

  我们分表的sql脚本在如下目录:

  deploy/src/main/resources/scheme/standard/shard.sql

  分别在javashop0、javashop1数据库中执行shard.sql脚本进。行创建新的数据表。

  这里面的表个数是要根据您的分片策略做出相应的改变,我们拿订单表要分2个表举例,应该修改脚本为:

  CREATETABLE`es_order0`(

  `order_id`bigint(20)NOTNULLCOMMENT'主键ID',

  `trade_sn`varchar(20)DEFAULTNULLCOMMENT'交易编号',

  其他字段略

  )

  CREATETABLE`es_order1`(

  `order_id`bigint(20)NOTNULLCOMMENT'主键ID',

  `trade_sn`varchar(20)DEFAULTNULLCOMMENT'交易编号',

  其他字段略

  )

四、配置分片策略

  修改配置中心的yml文件,以上述的分片策略为例:

1、定义数据源的分片

  修改application.yaml:

  spring:

  profiles:

  #需要包含的分片策略模块

  include:goods,order,member

  #sharding分库分表配置

  shardingsphere:

  #配置sql是否显示输出,调试用,生产环境需关闭

  props:

  sql:

  show:true

  sharding:

  #定义默认数据源为:ds0

  default-data-source-name:ds0

  #定义分库的数据源,这里定义了两个数据源

  datasource:

  #这里配置所有数据源的名字

  names:ds0,ds1

  ds0:

  type:com.alibaba.druid.pool.DruidDataSource

  driver-class-name:com.mysql.jdbc.Driver

  url:jdbc:mysql://192.168.2.208:3306/javashop01?useUnicode=true&characterEncoding=utf8&autoReconnect=true

  username:root

  password:123456

  ds1:

  type:com.alibaba.druid.pool.DruidDataSource

  driver-class-name:com.mysql.jdbc.Driver

  url:jdbc:mysql://192.168.2.208:3306/javashop02?useUnicode=true&characterEncoding=utf8&autoReconnect=true

  username:root

  password:123456

2、定义表分片策略

  定义订单相关策略,修改application-order.yml:

  spring:

  #分库分表配置

  shardingsphere:

  sharding:

  tables:

  #订单表(用ordersn分库,用member_id分表)

  es_order:

  actual-data-nodes:ds$->{0..1}.es_order$->{0..2}

  database-strategy:

  inline:

  sharding-column:sn

  algorithm-expression:ds$->{newLong(sn)%2}

  table-strategy:

  inline:

  sharding-column:member_id

  algorithm-expression:es_order$->{member_id%3}

  其他模块分片策略配置文件对照表:

五、总结

  ​以上是分2个库,订单分2个表为例的相关配置,请根据您的实际情况调整其他模块的分片策略(我们的配置文件默认不进行分库分表)。

  上述就是关于开启分片支持的内容了,想了解更多详情,可以持续关注易族智汇javashop,有任何问题,欢迎一起探讨。

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

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

相关文章

大数据 | 实验一:大数据系统基本实验 | MapReduce 初级编程

文章目录📚实验目的📚实验平台📚实验内容🐇编程实现文件的合并和去重🐇编程实现对输入文件的排序🐇对指定的表格进行信息挖掘📚实验目的 1)通过实验掌握基本的 MapReduce 编程方法。…

警惕“Money Message”勒索软件!数据安全不容忽视

近段时间,出现了一个名为“Money Message”的新型勒索软件,他们利用Money Message 病毒加密文件并以此向受害者勒索巨额赎金。 Money Message勒索软件是用 C编写,包含一个嵌入式JSON 配置文件,用于确定设备的加密方式。加密设备后…

小红书内容种草,曝光渠道分析总结

这是一个内容为王的时代,也是一个内容爆炸的时代。想要在以分享特色的小红书平台,实现内容种草,迅速出圈。今天来马文化传媒就从实操的角度,为大家带来小红书内容种草,曝光渠道分析总结的各种干货! 一、什…

关于图形界面Pyqt与QT的区别选择

关于图像界面(GUI)想必大家都并不陌生,想要将一段已经完善的功能列表进行可视化操作并且具有一定的操作空间,将功能可视化必不可少,一个好的可视化工具不仅可以集成一系列小的文件功能,还能将不同方法之间的…

ubuntu基本环境配置及mysql8.0.32和mysql workbench安装

ubuntu基本环境配置 文章目录ubuntu基本环境配置各种依赖包下载地址一、使用root账号进行远程连接二、防火墙相关设置2.1启用2.2开放和关闭端口数据库mysql安装(8.0.32)工具mysqlworkbench(8.0.32)各种依赖包下载地址 http://cn.archive.ubuntu.com/ubuntu/pool/main/liba/lib…

【1019. 链表中的下一个更大节点】

来源:力扣(LeetCode) 描述: 给定一个长度为 n 的链表 head 对于列表中的每个节点,查找下一个 更大节点 的值。也就是说,对于每个节点,找到它旁边的第一个节点的值,这个节点的值 严…

三天吃透Redis八股文

Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis 的数据是存在内存中的&#xf…

java调用python动态生成光电雷达图

一、编写java调用程序 //http://localhost:8945/api/ExecPy/ExecPyPollutionRadarMap ApiOperation(value "ExecPy") GetMapping(value "/ExecPyPollutionRadarMap") public String ExecPyPollutionRadarMap() {String scriptpath"F:\\demo\\Radar…

如何驱动模拟舵机-Controller 1.0b软件的使用

1.支持平台 win10、win7 win10打开Controller 1.0.exe即可运行;win7需要先安装Controller1.0b资料包\NetFarmwork文件夹中的.net框架组件。 2.电子硬件 我们用以下硬件为例来讲解Controller 1.0b软件的使用: 主控板 Basra主控板(兼容Arduino…

selenium自动化测试面试题【含答案】

目录 1、selenium中如何判断元素是否存在? 2、selenium中hidden或者是display = none的元素是否可以定位到? 3、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的? 4、如何提高s…

谷歌浏览器安装插件(从 Edge 浏览器里获取插件)

前言: 因为谷歌插件 商店,国内(不科学上网)是无法访问的,所以 要安装插件就得 通过各种途径 下载后 解压,然后安装。 谷歌浏览器下载、安装插件的方式 方式一:自行 百度下载压缩包&#xff0…

win10安装telnet服务器(开启端口,开启telnet客户端后依旧显示:无法打开到主机的连接,在端口xxxx连接失败)

前言 注:我使用telnet的根本原因是想测试端口是否通,因为要使用花生壳, 而之所以会显示 启telnet客户端后依旧显示:无法打开到主机的连接,在端口xxxx连接失败 错误,本质原因是: 1、你没有teln…

tensorflow深度神经网络实现鸢尾花分类

tensorflow深度神经网络实现鸢尾花分类 本文目录tensorflow深度神经网络实现鸢尾花分类获取数据集相关库的导入数据展示和划分对标签值进行热编码模型搭建使用Sequential模型搭建模型模型训练对训练好的模型进行评估使用model模型搭建模型对训练好的模型进行评估损失函数优化方…

使用golang连接kafka

1 下载,配置,启动 kafka 下载链接 配置修改 在config目录下的server文件和zookeeper文件,其中分别修改kafka的日志保存路径和zookeeper的数据保存路径。 启动kafka 先启动kafka自带的zookeeper,在kafka的根目录下打开终端&a…

百模大战,谁是下一个ChatGPT?

“不敢下手,现在中国还没跑出来一家绝对有优势的大模型,上层应用没法投,担心押错宝。”投资人Jucy(化名)向光锥智能表示,AI项目看得多、投的少是这段时间的VC常态。 ChatGPT点燃AI大爆炸2个月中&#xff0…

为什么工控行业生意越来越难做了?

前段时间跟几个做工业品销售的朋友聚了一下,大家都说去年一年挺难的,有些甚至想把小店关了。为什么现在工业品领域越来越难做了呢?今天也想给大家说一说我的一些看法。 以前的工控生意相对现在来说较为有限和封闭,技术上也没有现今…

Android 大图检测插件的落地

作者:layz4android 在实际的项目开发中,引入图片的方式基本可以分为两种:本地图片和云端图片,对于云端图片来说,可以动态地配置图片的大小,如果服务端的伙伴下发的图片很大导致程序异常,那么可以…

前端视角-https总结

1.http存在的问题 1.1可能被窃听 HTTP 本身不具备加密的功能,HTTP 报文使用明文方式发送互联网是由联通世界各个地方的网络设施组成,所有发送和接收经过某些设备的数据都可能被截获或窥视。(例如TCP/IP抓包工具:Wireshark),即使经过加密处理,也会被窥视是通信内容,只是可能很…

在 Flutter 多人视频通话中实现虚拟背景、美颜与空间音效

前言 在之前的「基于声网 Flutter SDK 实现多人视频通话」里,我们通过 Flutter 声网 SDK 完美实现了跨平台和多人视频通话的效果,那么本篇我们将在之前例子的基础上进阶介绍一些常用的特效功能,包括虚拟背景、色彩增强、空间音频、基础变声…

HBase高手之路4-Shell操作

文章目录HBase高手之路3—HBase的shell操作一、hbase的shell命令汇总二、需求三、表的操作1.进入shell命令行2.创建表3.查看表的定义4.列出所有的表5.删除表1)禁用表2)启用表3)删除表四、数据的操作1.添加数…